月度归档:2014年06月

wordpress模板标签-posts_nav_link()

说明

该标签显示前页和后页链接。可为索引页、分类页和文章存档页提供“分页”导航。

next_posts_link与previous_post_links()分别可显示前页、后页链接。

如要在单篇文章中显示上一页、下一页链接,请用next_post_link()与previous_post_link()。

用法

<?php posts_nav_link('sep','prelabel','nxtlabel'); ?> 

注意,由于博客文章通常以逆向时间顺序(发表日期越近的文章,排在文章列表的越上方)排列,因此用户可能对“下一页”、“后页”的定义持有不同看法。WordPress认为,“next page (下一页)”就是“早于当前时间的一页”。在WordPress 1.5中,默认主题Kubrick将“下一页”链接明确显示为“较早的日志”。

示例

默认用法

默认情况下,posts_nav_link的显示结果为:

wordpress模板标签-posts_nav_link()-wordpress标签模板-代码笔记 %

<?php posts_nav_link(); ?>

在居中的DIV标签中

在页面的居中位置上显示“上一页”、“下一页”链接。

<div style="text-align:center;">
<?php posts_nav_link(' &#183; ', 'previous page', 'next page'); ?>
</div>

使用图片作为分页链接

<?php posts_nav_link(' ', '<img src="images/prev.jpg" />', '<img src="images/next.jpg" />'); ?>

Kubrick 主题的分页链接格式

Kubrick主题的文章导航链接也可成为“上一页”、“下一页”链接格式。但可能会导致计划外的后果,如指向错误网页的“上一页”、“下一页”链接。

Kubrick主题实际上使用next_posts_link与previous_posts_link() 函数。

<div class="navigation">
<div class="alignleft"><?php posts_nav_link('','','&laquo; Previous Entries') ?></div>
<div class="alignright"><?php posts_nav_link('','Next Entries &raquo;','') ?></div>
</div>

自定义链接文本

你可以更改每个链接中的链接文本以及链接之间的文本。

wordpress模板标签-posts_nav_link()-wordpress标签模板-代码笔记 %

<p><?php posts_nav_link(' or ', 'You can go back
to the previous page', 'you can go
forward to the next page'); ?>.</p>

参数

sep

(字符串)链接之间的文本。

  • 在WP 1.2.x中,默认值为' :: '

  • 在WP 1.5中,默认值为' — '

prelabel

(字符串)“上一页”链接的链接文本。

  • 在WP1.2.x中,默认值为'<< Previous Page'

  • 在WP 1.5中,默认值为 '« Previous Page'

nxtlabel

(字符串)“下一页”链接的链接文本

  • 在WP1.2.x中,默认值为 'Next Page >>'

  • 在WP 1.5中,默认值为'Next Page »'

wordpress模板标签-wp_link_pages()

说明

该标签为分页文章(如文章中包含一个或一个以上<!–nextpage–> 快速标签)显示分页链接。与link_pages()运行方式几乎一致,区别在于,该标签的参数以查询字符串形式传递。该标签必须在WordPress主循环(loop)。

用法

<?php wp_link_pages( $args ); ?> 

默认用法

<?php 
$args = array(
'before' => '<p>' . __('Pages:'),
'after' => '</p>',
'link_before' => ,
'link_after' => ,
'next_or_number' => 'number',
'nextpagelink' => __('Next page'),
'previouspagelink' => __('Previous page'),
'pagelink' => '%',
'more_file' => ,
'echo' => 1 ); 
?>

参数

before

(字符串)显示在所有链接前的文本。默认值为<p>Pages:。

after

(字符串)显示在所有链接后的文本。默认值为</p>。.

link_before

(字符串)链接文本前的文字。默认值为(blank)(空)。在WP 2.7以及更高版本中,该参数为必要参数。

link_after

(字符串)链接文本后的文字。默认值为(blank)(空)。在WP 2.7以及更高版本中,该参数为必要参数。

next_or_number

(字符串)是否使用页数。有效值包括:

  • number(默认)

  • next(WP 1.5及之后版本中有效)

nextpagelink

(字符串)下一页链接的链接文本。默认值为Next page(下一页)。(WP 1.5及之后版本中有效)

previoustpagelink

(字符串)上一页链接的链接文本。默认值为Previous page(上一页)。(WP 1.5及之后版本中有效)

pagelink

(字符串)页数的格式化字符串。字符串中的%会被替换为数字,因此Page % 会转换成"Page 1"、"Page 2"等。默认为%。

more_file

(字符串)链接所指向的网页。默认为当前页面。

echo

(布尔型)响应或返回结果。默认值为true。有效值包括:

  • 1 (True)—— 默认值

  • 0(False)

示例

默认用法

默认显示分页链接,链接前后有段落标签,分页链接文本为Next page 与Previous page,所有页面按1、2、3这样的编号顺序显示。

<?php wp_link_pages(); ?>

段落标签中的分页链接

显示由段落标签包裹着的分页链接。

<?php wp_link_pages('before=<p>&after=</p>&next_or_number=number&pagelink=page %'); ?>

DIV中的分页链接

在CSS引用的DIV中显示分页链接(div id="page-links")。

<?php wp_link_pages('before=<div id="page-links">&after=</div>'); ?>

历史记录

  • 始见于WordPress 0.71版本

源文件

wp_link_pages()位于wp-includes/post-template.php

wordpress模板标签-the_excerpt_rss()

说明

该标签显示已经被格式化以供用在RSS订阅中的、当前文章的内容。如果用户没有为文章提供摘要(在文章编辑界面下方的摘要字段中填写摘要),WordPress会自动截取文章的前55个单词作为摘要。该标签必须在WordPress主循环(loop)。

关于对输出内容的进一步控制,请见the_content_rss()

用法

<?php the_excerpt_rss(); ?> 

参数

该标签无参数。

注意:下文中介绍了WP 1.2版本时该标签可接收的参数。

示例

显示文章摘要,若无摘要显示正文前120个单词,供RSS订阅使用。

<description><?php the_excerpt_rss(); ?></description>

WP 1.2版本

WordPress 1.5之后,该标签不接收任何参数。下面是WP 早期版本——1.2版中该标签的相关信息。

WP 1.2用法

<?php the_excerpt_rss( $cut, $encode_html ); ?> 

WP 1.2参数

$cut

(整数)结束内容前所显示的内容字数。该参数值可为任何数字。

encode_html

(整数)定义html标签过滤与特殊字符(如'&')编码。可用值包括:

  • 0 ——(默认)为编号的“url脚注”解析链接

  • 1 —— 用PHP函数htmlspecialchars()进行过滤,也会将cut参数设为0,因此不推荐在使用cut参数时以1作为encode_html的值

  • 2 —— 去除html标签,用'&' 代替其HTML字符串实体(&amp;)。使用cut参数时,encode_html的默认值为2。

wordpress模板标签-the_excerpt()

说明

该标签显示当前文章的摘要,摘要之后带有[…]符号,而非“read more”链接。如果用户没有为文章提供摘要(在文章编辑界面下方的摘要字段中填写摘要),WordPress会自动截取文章的前55个单词作为摘要。在后面这种情况下,摘要中的HTML标签和图形都会被剥离。该标签必须在WordPress主循环(loop)内。

注意:若当前文章是一个附件,例如在attachment.php和image.php模板循环中,那么显示该附件的说明文字。说明文字不包含摘要的[…]标记。

the_excerpt() VS. the_content()

有时只使用the_content函数更具实用意义。根据有否使用 <!–more–> 标签,the_content()函数将决定所显示的内容。 <!–more–> 标签将文章/页面分割为两部分,标签前的内容用以显示在网页上。浏览单篇文章/页面时, <!–more–>会被忽略。

用法

<?php the_excerpt(); ?>

参数

该标签无参数。

示例

默认用法

显示文章摘要。用在非单篇或非固定链接的文章中,代替the_content(),强制摘要显示在循环内。

<?php the_excerpt(); ?>

与条件标签共同使用

在存档页面(由is_archive()函数判断)或分类页面(由is_category() 函数判断)上用the_excerpt()代替the_content()标签。

以下两个示例都可在WP 1.5及更高版本中运行。

<?php 
if ( is_category() || is_archive() ) {
the_excerpt();
} else {
the_content();
} 
?>

而对WP 1.5之前的版本,只能使用下面这个示例:

<?php 
if ( $cat || $m ) {
the_excerpt();
} else {
the_content();
} 
?>

用过滤器控制摘要长度

默认情况下,摘要的长度为55个单词。要用 excerpt_length过滤器更改摘要的长度,可在主题的functions.php文件中添加以下代码:

function new_excerpt_length($length) {
return 20;
}
add_filter('excerpt_length', 'new_excerpt_length');

用过滤器删除[…]字符串

在WP 2.9及更高版本中

默认情况下,摘要之后(more字符串之后)的文章内容显示为“[…]”。要用 excerpt_more过滤器删除摘要more字符串,请在主题的functions.php文件中添加以下代码:

function new_excerpt_more($more) {
return '[.....]';
}
add_filter('excerpt_more', 'new_excerpt_more');

在WP 2.8及之前的版本中

function new_excerpt_more($excerpt) {
return str_replace('[...]', '...', $excerpt);
}
add_filter('wp_trim_excerpt', 'new_excerpt_more');

注释

历史记录

  • 始见于WordPress 0.71版本

源文件

the_excerpt()位于wp-includes/post-template.php

wordpress模板标签-the_content_rss()

说明

为feed显示文章内容。

有三个值可能对html或$encode_html参数进行编码。‘0’将生成url脚注,使用 make_url_footnote()。‘1’会对特定字符进行编码,并自动显示所有内容。‘2’除去内容中的所有HTML标签。

需要注意,这里无法设定总字数,也无法设置html编码。如果是这样,html编码将默认为2,所有HTML标签将被除去。

用cut参数可限制内容的字数。若内容少于总字数,内容的结尾处不添加小点(省略号)。若内容超过设定的总字数,结尾处显示省略号,多出来的部分被删除。

用法

<?php the_content_rss( $more_link_text, $stripteaser, $more_file, $cut, $encode_html ) ?>

参数

$more_link_text

(字符串)(可选)有更多内容但无法显示时,该参数显示剩余内容

默认值:'more…'

$stripteaser

(整数 | 布尔值)(可选)默认值为0.

默认值:0

$more_file

(字符串)(可选)可选

默认值:''

$cut

(整数)(可选)可显示的内容总字数

默认值:0

$encode_html

(整数)(可选)如何对内容进行编码

默认值:0

返回的值

(空)

该函数不返回任何值

示例

注释

修改记录

自0.71版本后

源文件

the_content_rss()位于 wp-includes/feed.php.中。

wordpress模板标签-the_content()

说明

该标签显示当前文章的内容。该标签必须在WordPress主循环(loop)。

若文章使用快速标签 <!–more–> 来截取摘要,the_content()标签将只在非单篇文章或非固定链接文章上显示 <!–more–>前的摘要部分。the_content()标签可包含一个规定 <!–more–>内容和样式的参数,该参数会生成“继续阅读全文”的链接。

关于 <!–more–>:

  • <!–more–>快速标签中的more前不得有空格。否则 <!–more–>将无法发挥作用。

  • <!–more–>快速标签无法在模板中运行(会被模板忽略),如single.php只会显示一篇文章。

  • 更多信息请见改变“Read More”的样式

用法

<?php the_content( $more_link_text, $strip_teaser, $more_file ); ?>

参数

$more_link_text

(字符串)(可选)“more”链接的链接文本

默认值: '(more…)'

$strip_teaser

(布尔型)(可选)显示(FALSE)或隐藏(TRUE)more链接前的文本。

默认值:FALSE

$more_file

(字符串)(可选)more链接所指向的文件

默认值:当前文件

示例

设计“More”文本

文章使用<!–more–> 快速标签时,显示文章内容并用"Read more…" 代替<!–more–> 后的内容。

<?php the_content('Read more...'); ?>

在“More”中加入标题

该示例类似于上一个示例,但在the_title()标签和display参数的帮助下,若文章使用 <!–more–>,该示例可以显示"Continue reading ACTUAL POST TITLE"(继续阅读当前文章标题)

<?php the_content("Continue reading " . the_title('', '', false)); ?>

改写存档/单个页面

如果the_content()不能按计划运行(如当你希望显示<!–more–> 标签前的内容,the_content()却显示了全文内容),你可以用全局变量$more改写这一行为:

<?php
global $more; // Declare global $more (before the loop).
$more = 0; // Set (inside the loop) to display content above the more tag.
the_content("More...");
?>

如果需要显示所有正文:

<?php
global $more; // Declare global $more (before the loop).
$more = 1; // Set (inside the loop) to display all content, including text below more.
the_content();
?>

其它用法

你可以用get_the_content函数返回文章内容的值,而非直接输出文章内容。示例如下:

<?php $content = get_the_content(); ?>

请注意!get_the_content 无法进行以下操作,因此你最好手动添加以下代码,直到核心程序升级成功:

<?php
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]&gt;', $content);
?>

历史记录

  • 始见于WordPress 0.71版本

源文件

the_content()位于wp-includes/post-template.php

wordpress模板标签-single_post_title()

说明

在一个单篇文章页面(固定链接页面)上,该标签显示或返回当前文章的标题。该标签可在WordPress主循环(loop)外显示文章标题。

用法

<?php single_post_title( $prefix, $display ); ?> 

默认用法

<?php 
single_post_title(
'prefix' => ,
'display' => true ); 
?>

参数

$prefix

(字符串)(可选)放在标题前的文本

默认值:None

$display

(布尔型)(可选)显示标题(TRUE)或返回标题以便用在PHP中(FALSE)。

默认值:TRUE

示例

默认用法

<h2><?php single_post_title('Current post: '); ?></h2>

wordpress模板标签-single_post_title()-wordpress标签模板-代码笔记

wordpress模板标签-the_title_attribute()

说明

该标签显示或返回当前文章的标题。在一定程度上与the_title() 功能一致,但该标签剥离了标题的HTML标签并将若干字符(包括引号)转换为相应的字符实体,从而给出了一个更为“简洁”的标题;该标签还使用了查询字符串类型的参数。该标签必须在WordPress主循环(loop)内

用法

<?php the_title_attribute('arguments'); ?>

示例

<?php the_title_attribute('before=<h3>&after=</h3>'); ?>

参数

before

(字符串)放在标题前的文本。默认为''。

after

(字符串)放在标题前的文本。默认为''。

echo

(布尔型)回应标题(1)或返回标题以用在PHP中(0)。默认值为1。

历史记录

  • 始见于WordPress 2.3.0版本

注释

参见:the_title()

wordpress模板标签-the_title_rss()

说明

该标签显示当前日志的标题,并格式化标题以便用在RSS中。该标签必须在WordPress主循环(loop)内。

用法

<?php the_title_rss(); ?> 

示例

在RSS标题标签中显示日志标题。

<title><?php the_title_rss(); ?></title>

参数

该标签无参数。

返回的值

(空)

该函数不返回任何值

示例

用法:用get_the_title_rss() 检索当前文章标题

修改记录

自WordPress0.71版本后

源文件

the_title_rss()位于 wp-includes/feed.php.中。

wordpress模板标签-the_title()

说明

该标签显示或返回当前日志的标题。该标签必须在WordPress主循环(loop)内。

用法

<?php the_title( $before, $after, $display ); ?>

参数

$before

(字符串)放在标题前的文本。默认为:None

$after

(字符串)放在标题后的文本。默认为:None

$display

(布尔型)显示标题(TRUE)或返回标题以便用于PHP(FALSE)。默认为TRUE。

示例

<?php the_title('<h3>', '</h3>'); ?>

注释

历史记录

  • 始见于WordPress 0.71版本

源文件

the_title()位于wp-includes/post-template.php