在创建一款动态的 WordPress 主题过程中,条件标签非常有用。它允许你控制哪些内容将会显示、以怎么样的方式显示。下面是一些条件标签的示例:
动态高亮菜单
我在 Best Web Gallery 中使用了动态高亮菜单。假如当前页面是首页(Home)或目录页(Category)或存档页(Archive)或搜索结果页(Search)或单篇日志 页面(Single),class=”current” 属性将会自动加入到第一个列表条目的 li 标签中,它将会高亮显示“Callery”按钮;假如当前页面的缩略名是“about”时,class=”current” 属性将自动加入第二个列表条目的 li 标签中。
<li<?php if ( is_home() || is_category() || is_archive() || is_search() || is_single() || is_date() ) { echo ”; } ?>><a href=”#”>Gallery</a></li>
<li<?php if ( is_page(‘about’) ) { echo ”; } ?>><a href=”#”>About</a></li>
<li<?php if ( is_page(‘submit’) ) { echo ”; } ?>><a href=”#”>Submit</a></li>
</ul>
动态 title 标签
又一个例子,我将使用条件标签在 header.php 中输出动态的 title 标签。
<?php
if (is_home()) {
echo bloginfo(‘name’);
} elseif (is_404()) {
echo ‘404 Not Found’;
} elseif (is_category()) {
echo ‘Category:’; wp_title(”);
} elseif (is_search()) {
echo ‘Search Results’;
} elseif ( is_day() || is_month() || is_year() ) {
echo ‘Archives:’; wp_title(”);
} else {
echo wp_title(”);
}
?>
</title>
动态内容
如果你想包含一个只在首页上显示的文件,使用下面的代码:
高亮特定的日志
假设 ID 为 2 的目录是你的特别目录,你想添加一个 CSS 类使得该目录下的所有日志均高亮显示,那么你可以在 WordPress 的循环中使用下面的代码片段:
唯一的单篇日志模板
假设你想使用不同的单篇日志模板(single.php)显示不同目录下的文章,你可以使用 in_category 函数来判断某篇日志处于哪个目录,然后调用不同的单篇日志模板。在默认的 single.php 文件中,敲入下面的代码,目录 1 的文章将使用 single1.php 模板,目录 2 的文章将使用 single2.php,其它文章将使用 single_other 模板:
$post = $wp_query->post;if ( in_category(‘1’) ) {
include(TEMPLATEPATH . ‘/single1.php’);
} elseif ( in_category(‘2’) ) {
include(TEMPLATEPATH . ‘/single2.php’);
} else {
include(TEMPLATEPATH . ‘/single_other.php’);
}
?>
唯一的目录模板
假设你想为不同的目录使用不同的模板,你只需要简单地将模板保存为以 category-2.php 这种形式命名的文件,category-2.php 用来显示 ID 为 2 的目录,category-3.php 用来显示 ID 为 3 的目录,依次类推。
在第一篇日志后显示 Google 广告
很多人向我询问如何实现在第一篇日志后显示 Google 广告,很简单,你需要在循环中使用一个变量 $loopcounter,当 $loopcounter 小于等于 1 时,添加 Google 广告代码文件:
// the loop stuffs
<?php if ($loopcounter <= 1) { include (TEMPLATEPATH . ‘/ad.php’); } ?>
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>
调用日志
你可以在循环中使用 query_posts 来控制日志的调用,它允许你控制日志显示的内容、显示的位置、显示的方式。你可以调用或排除特定的目录,你有完全的权力来决定。下面我将演示如何使用 query_posts 显示最新日志列表、特定日志或排除特定的目录:
显示最新日志列表
下面的代码将显示最新的 5 篇日志:
<?php while (have_posts()) : the_post(); ?>
<li><a href=”<?php the_permalink() ?>”><?php the_title(); ?></a></li>
<?php endwhile;?>
</ul>
显示特定日志
假设 ID 为 2 的目录是你的特别目录,你想在侧边栏中显示该目录下的 5 篇最新日志,那么把下面的代码写进 sidebar.php:
<?php while (have_posts()) : the_post(); ?>
<li><a href=”<?php the_permalink() ?>”><?php the_title(); ?></a></li>
<?php endwhile;?>
</ul>
排除特定的目录
你可以使用 query_posts 来排除显示特定目录的日志,下面的代码将排除 ID 为 2 的目录,请注意 ID 前面的负号:
//the loop here
<?php endwhile;?>
小技巧:你还可以使用 posts_per_page 参数指定每页显示的日志数:
自定义字段
自定义字段 Custom_Fields 是 WordPress 最强大的功能之一,它允许你为日志的内容或摘要附加额外的数据或文本。有了自定义字段,你可以自由地把 WordPress 变成一个 CMS 系统。在 Web Designer Wall,我使用自定义字段为每篇日志显示一张图片并链接至它。
首先要为日志添加自定义字段:
再使用下面的代码调用图片并添加链接:
<?php $image = get_post_meta($post->ID, ‘article_image’, true); ?><a href=”<?php the_permalink() ?>”><img src=”<?php echo $image; ?>” alt=”<?php the_title(); ?>” /></a>
小技巧:别忘了 WordPress 允许你为每篇日志添加多个自定义字段。
我在 Best Web Gallery 中使用了多个自定义字段调用站点缩略图,图片提示和链接地址。
WP List Pages
模板标签 wp_list_pages 通常用来显示导航页面列表,下面我告诉你如何使用它来显示站点地图和子菜单。
站点地图
为你的所有页面生成一个站点地图(示例),把下面的代码放进你的页面模板中(page.php),我排除了 ID 为 12 的页面,因为它就是站点地图页面本身,我不想把它也显示出来:
<?php wp_list_pages(‘exclude=12&title_li=’ ); ?>
</ul>
动态的子页面菜单
把下面的代码放进 sidebar.php,它将显示当前页面的子页面,如果有的话:
$children = wp_list_pages(‘title_li=&child_of=’.$post->ID.’&echo=0′);
if ($children) { ?><ul>
<?php echo $children; ?>
</ul>
<?php } ?>
页面模板
如果你想用 WordPress 建立一个网页管理系统,你一定不能放过页面模板这个功能。它允许你自定义页面的显示方式。要使用页面模板,首先你得创建一个页面模板,然后给页面指定这个模板:
下面是页面模板的结构:
/*
Template Name: Portfolio
*/
?><?php get_header(); ?>
//the loop here
<?php get_footer(); ?>
当你编辑一个页面时,可以为它指定可用的模板:
WordPress 选项
还有一些 WordPress 内建的选项可以让你的站点看上去更好,它们是:
自定义首页
默认情况下,WordPress 将会在你的首页上显示日志,但是你可以设置为一个静态页面或是欢迎页面,在 Admin -> Options -> Reading 中设置该选项:
永久链接
默认地,WordPress 日志的地址是类似于 www.yoursite.com/?p=123 的形式,它既不是 URL 又对搜索引擎不友好,你可以在 Admin -> Options -> Permalinks 中设置 Permalink 永久链接的形式。
目录前缀
WordPress 目录的默认前缀是 category,当你按照下图在 Options -> Permalinks 中输入 article 后,目录的前缀将变为 article。
目录的 URL 也将从 yoursite.com/category/cat-name/ 变为 yoursite.com/article/cat-name/
想继续读?
WordPress Codex 是学习 WordPress 的最佳去处,感谢 WordPress!
评论