template-functions-post.php
来自「php 开发的内容管理系统」· PHP 代码 · 共 569 行 · 第 1/2 页
PHP
569 行
<?php
function get_the_password_form() {
$output = '<form action="' . get_settings('siteurl') . '/wp-pass.php" method="post">
<p>' . __("This post is password protected. To view it please enter your password below:") . '</p>
<p><label>' . __("Password:") . ' <input name="post_password" type="password" size="20" /></label> <input type="submit" name="Submit" value="' . __("Submit") . '" /></p>
</form>
';
return $output;
}
function the_ID() {
global $id;
echo $id;
}
function the_title($before = '', $after = '', $echo = true) {
$title = get_the_title();
if ( strlen($title) > 0 ) {
$title = apply_filters('the_title', $before . $title . $after, $before, $after);
if ( $echo )
echo $title;
else
return $title;
}
}
function get_the_title($id = 0) {
$post = &get_post($id);
$title = $post->post_title;
if ( !empty($post->post_password) )
$title = sprintf(__('Protected: %s'), $title);
return $title;
}
function get_the_guid( $id = 0 ) {
$post = &get_post($id);
return apply_filters('get_the_guid', $post->guid);
}
function the_guid( $id = 0 ) {
echo get_the_guid($id);
}
function the_content($more_link_text = '(more...)', $stripteaser = 0, $more_file = '') {
$content = get_the_content($more_link_text, $stripteaser, $more_file);
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;
}
function get_the_content($more_link_text = '(more...)', $stripteaser = 0, $more_file = '') {
global $id, $post, $more, $single, $withcomments, $page, $pages, $multipage, $numpages;
global $preview;
global $pagenow;
$output = '';
if ( !empty($post->post_password) ) { // if there's a password
if ( stripslashes($_COOKIE['wp-postpass_'.COOKIEHASH]) != $post->post_password ) { // and it doesn't match the cookie
$output = get_the_password_form();
return $output;
}
}
if ( $more_file != '' )
$file = $more_file;
else
$file = $pagenow; //$_SERVER['PHP_SELF'];
$content = $pages[$page-1];
$content = explode('<!--more-->', $content, 2);
if ( (preg_match('/<!--noteaser-->/', $post->post_content) && ((!$multipage) || ($page==1))) )
$stripteaser = 1;
$teaser = $content[0];
if ( ($more) && ($stripteaser) )
$teaser = '';
$output .= $teaser;
if ( count($content) > 1 ) {
if ( $more )
$output .= '<a id="more-'.$id.'"></a>'.$content[1];
else
$output .= ' <a href="'. get_permalink() . "#more-$id\">$more_link_text</a>";
}
if ( $preview ) // preview fix for javascript bug with foreign languages
$output = preg_replace('/\%u([0-9A-F]{4,4})/e', "'&#'.base_convert('\\1',16,10).';'", $output);
return $output;
}
function the_excerpt() {
echo apply_filters('the_excerpt', get_the_excerpt());
}
function get_the_excerpt($fakeit = true) {
global $id, $post;
$output = '';
$output = $post->post_excerpt;
if ( !empty($post->post_password) ) { // if there's a password
if ( $_COOKIE['wp-postpass_'.COOKIEHASH] != $post->post_password ) { // and it doesn't match the cookie
$output = __('There is no excerpt because this is a protected post.');
return $output;
}
}
return apply_filters('get_the_excerpt', $output);
}
function wp_link_pages($args = '') {
parse_str($args, $r);
if ( !isset($r['before']) )
$r['before'] = '<p>' . __('Pages:');
if ( !isset($r['after']) )
$r['after'] = '</p>';
if ( !isset($r['next_or_number']) )
$r['next_or_number'] = 'number';
if ( !isset($r['nextpagelink']) )
$r['nextpagelink'] = 'Next page';
if ( !isset($r['previouspagelink']) )
$r['previouspagelink'] = 'Previous page';
if ( !isset($r['pagelink']) )
$r['pagelink'] = '%';
if ( !isset($r['more_file']) )
$r['more_file'] = '';
link_pages($r['before'], $r['after'], $r['next_or_number'], $r['nextpagelink'], $r['previouspagelink'], $r['pagelink'], $r['more_file']);
}
function link_pages($before='<br />', $after='<br />', $next_or_number='number', $nextpagelink='next page', $previouspagelink='previous page', $pagelink='%', $more_file='') {
global $id, $page, $numpages, $multipage, $more, $pagenow;
if ( $more_file != '' )
$file = $more_file;
else
$file = $pagenow;
if ( $multipage ) {
if ( 'number' == $next_or_number ) {
echo $before;
for ( $i = 1; $i < ($numpages+1); $i = $i + 1 ) {
$j = str_replace('%',"$i",$pagelink);
echo ' ';
if ( ($i != $page) || ((!$more) && ($page==1)) ) {
if ( '' == get_settings('permalink_structure') )
echo '<a href="' . get_permalink() . '&page=' . $i . '">';
else
echo '<a href="' . trailingslashit( get_permalink() ) . $i . '/">';
}
echo $j;
if ( ($i != $page) || ((!$more) && ($page==1)) )
echo '</a>';
}
echo $after;
} else {
if ( $more ) {
echo $before;
$i = $page - 1;
if ( $i && $more ) {
if ( '' == get_settings('permalink_structure') )
echo '<a href="' . get_permalink() . '&page=' . $i . '">'.$previouspagelink.'</a>';
else
echo '<a href="' . get_permalink() . $i . '/">'.$previouspagelink.'</a>';
}
$i = $page + 1;
if ( $i <= $numpages && $more ) {
if ( '' == get_settings('permalink_structure') )
echo '<a href="'.get_permalink() . '&page=' . $i . '">'.$nextpagelink.'</a>';
else
echo '<a href="'.get_permalink().$i.'/">'.$nextpagelink.'</a>';
}
echo $after;
}
}
}
}
/*
Post-meta: Custom per-post fields.
*/
function get_post_custom( $post_id = 0 ) {
global $id, $post_meta_cache, $wpdb;
if ( ! $post_id )
$post_id = $id;
if ( isset($post_meta_cache[$post_id]) )
return $post_meta_cache[$post_id];
if ( $meta_list = $wpdb->get_results("SELECT post_id, meta_key, meta_value FROM $wpdb->postmeta WHERE post_id = '$post_id' ORDER BY post_id, meta_key", ARRAY_A) ) {
// Change from flat structure to hierarchical:
$post_meta_cache = array();
foreach ( $meta_list as $metarow ) {
$mpid = $metarow['post_id'];
$mkey = $metarow['meta_key'];
$mval = $metarow['meta_value'];
// Force subkeys to be array type:
if ( !isset($post_meta_cache[$mpid]) || !is_array($post_meta_cache[$mpid]) )
$post_meta_cache[$mpid] = array();
if ( !isset($post_meta_cache[$mpid]["$mkey"]) || !is_array($post_meta_cache[$mpid]["$mkey"]) )
$post_meta_cache[$mpid]["$mkey"] = array();
// Add a value to the current pid/key:
$post_meta_cache[$mpid][$mkey][] = $mval;
}
return $post_meta_cache[$mpid];
}
}
function get_post_custom_keys() {
$custom = get_post_custom();
if ( ! is_array($custom) )
return;
if ( $keys = array_keys($custom) )
return $keys;
}
function get_post_custom_values( $key = '' ) {
$custom = get_post_custom();
return $custom[$key];
}
function post_custom( $key = '' ) {
$custom = get_post_custom();
if ( 1 == count($custom[$key]) )
return $custom[$key][0];
else
return $custom[$key];
}
// this will probably change at some point...
function the_meta() {
global $id, $post_meta_cache;
if ( $keys = get_post_custom_keys() ) {
echo "<ul class='post-meta'>\n";
foreach ( $keys as $key ) {
$values = array_map('trim', get_post_custom_values($key));
$value = implode($values,', ');
echo "<li><span class='post-meta-key'>$key:</span> $value</li>\n";
}
echo "</ul>\n";
}
}
/*
Pages
*/
function &get_page_children($page_id, $pages) {
global $page_cache;
if ( empty($pages) )
$pages = &$page_cache;
$page_list = array();
foreach ( $pages as $page ) {
if ( $page->post_parent == $page_id ) {
$page_list[] = $page;
if ( $children = get_page_children($page->ID, $pages) )
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?