打开WordPress主题自带的模板文件header.php,我们会注意到文件中提到“我的博客名”时,和在博客页面上看到的实际名称总是不一样的。模板中的博客名称经常由一堆没有太多实际意义的箭头、括弧以及单词组成。
这是一个模板标签的例子。
下面我们开始逐步了解模板标签和模板标签的用法。
模板标签是什么
一个模板标签就是一组指示WordPress进行某个操作或者获取某些资料的代码。在header.php中,我们的WordPress博客名称的模板标签显示为:
<h1><?php bloginfo('name'); ?></h1>
在上面这个模板标签中, <?php bloginfo(); ?>包裹在H1标题标签中。其中bloginfo()标签从控制板的用户信息 选项和“设置”菜单下的“常规”选项中获取信息。而标签引号中的name则命令标签“获取博客名称”。标签中引号内的内容被称为参数。
模板标签的参数
除了name参数,<?php bloginfo(); ?>模板标签还可以接收其它参数。下面我们就了解一下其中一些参数——想了解该模板标签的更多参数,请看 bloginfo()。
name <?php bloginfo('name'); ?>
根据上文的描述,该参数显示博客/网站名称,用户可以在控制板“设置”菜单下的“常规”选项下设置博客名称。
description <?php bloginfo('description'); ?>
这相当于博客的“标语”,一般由“我的博客是……”等说明性语言组成。用户可以在控制板“设置”菜单下的“常规”选项下设置博客“标语”。
url <?php bloginfo('url'); ?>
需要显示WordPress博客地址或URL时,可以使用URL参数。用户可以在控制板“设置”菜单下的“常规”选项下设置博客的URL。
admin_email <?php bloginfo('admin_email'); ?>
希望显示网站管理员的邮箱地址时,不必在模板文件中输入邮箱地址,这样邮件采集器可能会获取我们的邮箱地址并向我们发送垃圾邮件。利用 bloginfo('admin_email'),邮箱地址会显示在网站访问者的页面上,而实际邮箱地址经过伪装,采集器无法识别。可以在管理菜单“设置”菜单下的“常规”选项中设置网站管理员的邮箱地址。
version <?php bloginfo('version'); ?>
有时我们还要显示所用的WordPress版本信息。WordPress默认主题的页脚模板中就包括了当前WordPress的版本信息。version <?php bloginfo('version'); ?>显示我们当前所用的WordPress版本信息。
显示WordPress版本信息的模板标签:
<p>Powered by WordPress version <?php bloginfo('version'); ?></p>
Powered By WordPress version 2.8.4 |
注意:version参数只能生成WordPress版本号(此处即2.8.4),而不是“Powered by WordPress version”。这些单词出现在标签之前,使用户能够在页面上看到完整的“Powered by WordPress version 2.8..4”。
如何使用模板标签
熟悉模板标签中列出的各种模板标签后,我们会发现大多数模板标签都非常简单,例如bloginfo()模板标签,但同时很多模板标签看起来很复杂。下面我们就来了解一下模板标签的用法。
从bloginfo()中可以看出,只需要模板标签中的一个词就可以改变输出结果。这个词被称为参数,参数通知模板标签进行某项操作或者获取某些资料。在bloginfo('name')中,模板标签需要获取博客/网站名称。
模板标签the_title()显示日志的标题,标题通常出现在日志正文上方。默认情况下该标签获取并显示日志标题,但同时该标签还需要进行一项操作——更改日志标题的显示效果。
默认情况下,模板标签the_title()形式如下:
<?php the_title(); ?>
显示效果如下:
Using WordPress Makes Me Smile |
假设此时我们需要以某种方式高亮显示日志标题,例如利用图形或字符实体(如箭头或是项目符号)。我们可以在标题前加上一个日币(yen)符号¥。
模板标签the_title()接收的参数包括:
<?php the_title('before', 'after', display); ?>
此时我们需要在标题前加上符号¥,并且用空格隔开该符号和标题,现在我们可以将要求添加到参数中:
<?php the_title('¥ '); ?>
页面显示效果如下:
¥ Using WordPress Makes Me Smile |
接下来我们可以考虑在标题后面加上一些内容,例如一个可以激发人们阅读兴趣的符号»。
<?php the_title('¥ ', ' »'); ?>
注意,符号»和标题之间也应该用空格隔开以区别两者。
¥ Using WordPress Makes Me Smile » |
我们还可以将标题设计成不同样式。下面是使用标题标签的另一个示例:
<h2><?php the_title('Post Title: '); ?></h2>
日志标题显示为2号标题字体,标题前还出现了“Post Title”字样。显示结果:
Post Title: Using WordPress Makes Me Smile |
注意:虽然the_title接收“before”和“after”参数,但不是所有模板标签都能够接收这两个参数。使用模板标签前请先查看WordPress手册中对该模板标签的介绍,介绍中会列出模板标签接收的参数。
布尔型模板标签
上面的模板标签示例使用的是相互用引号和逗号隔开的简单参数,接下来我们介绍布尔型模板标签。布尔型模板标签利用布尔数学体系,将多个参数相互连接。常见布尔表达式用“and(&)”连接各个参数。
在WordPress工具栏和菜单模板文件中经常可以看到模板标签wp_list_cats()。该模板标签列出网站的所有分类。
<?php wp_list_cats(); ?>
默认情况下,该模板标签的参数有:
- all ——显示所有分类
- sort_column ——按类别ID排列日志
- sort_order ——按升序排列日志
- list —— 将分类日志设置为无序排列(<ul><li>)
- optioncount ——不在类别中显示日志总数
- hide_empty ——根据最先的两个参数(optional与all),不显示没有日志的分类
- use_desc_for_title ——将分类说明作为链接标题
- children ——显示每个类别下的子类别
下面是一个分类目录示例:
- Stories About My Life
- Stories About My Family
-
Things I Want To Share
- About WordPress
- About Writing
- About Story Telling
- Facts and Fiction About Life
缩进显示的类别——"About WordPress", "About Writing"与"About Story Telling"是父类别"Things I Want To Share"下属子类别。默认情况下这些类别标题不是类别的实际名称,只是用户在管理面板> 文章> 分类目录选项下设置的类别描述。
如果希望显示分类的实际名称而不是类别描述,可以将模板标签改为:
<?php wp_list_cats('use_desc_for_title=0'); ?>
参数值设为0,即分类描述不再作为类别标题。这时分类目录显示为:
- My Life Stories
- My Family
-
Sharing
- WordPress
- Writing
- Story Telling
- Facts and Fiction
如果我们不希望“Sharing”的子类别出现在分类目录上,可以为wp_list_cats()添加一个参数,让该模板标签不显示子类别,接着再添加一个只显示类别标题而非类别描述的参数,两个参数间用表示and的符号“&”连接。
<?php wp_list_cats('use_desc_for_title=0&children=0'); ?>
注意&符号前后没有空格。除参数外围的引号外,参数之间也没有其它引号或空格。此时分类目录显示如下:
- My Life Stories
- My Family
- Sharing
- Facts and Fiction
下面是另一个示例。如果我们希望将类别链接作为类别标题,将所有链接按名称字母顺序排列,在每个分类中显示日志总数,并且只显示ID为3的类别("Sharing")下属子类别,这时我们需要使用的模板标签是:
<?php wp_list_cats('sort_column=name&sort_order=asc&optioncount=1&use_desc_for_title=0& child_of=3'); ?>
-
- Story Telling (21)
- WordPress (23)
- Writing (10)
模板标签与WordPress主循环
WordPress中很多模板标签都在WordPress主循环中运行。这意味着,这些模板标签作为php“循环”的一部分,被包含在模板文件中。模板标签根据主循环中的说明,生成访问者请求的页面。
WordPress主循环将以下代码作为开始部分:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
循环中的模板标签必须出现在代码中间部分,在循环结束部分前:
<?php endwhile; else: ?> <p><?php _e('Sorry, no posts matched your criteria.'); ?></p> <?php endif; ?>
需要出现在循环中的模板标签包括the_content(),the_excerpt(),next_post()以及 previous_post()。如果我们需要使用的模板标签没有必要出现在WordPress循环中,例如 wp_list_cats()与wp_list_pages,我们额可以将这些模板标签放在任意位置上,例如侧边栏、页眉或是页脚的模板文件中。
相关资料
本文只是对WordPress模板标签的简单介绍,更多详细信息请参考以下资源:
设计模板标签
分类:中文手册