我想在存档(Archive)页面上加上一条提示信息,如“您正在浏览Tag为Wordpress的存档页面”,或“您正在浏览2007年11月的存档页面”。看了Codex文档,知道要用is_tag+single_tag_title组合,不过加进Theme里去费了一些时间。看来自己还是PHP白痴,所以记录一下。

首先Theme里得有个Archives(archive.php),当然没有也可以,加在Main Index Template(index.php)里也行。我这个Theme没有archive.php,而有了archive.php后,所有存档页包括月、年、分类等都会调用它来显示,Tag也是如此。判断是哪种存档页并显示相应的提示信息需要下面的语句(来自WP Glass):

<php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
<php /* If this is a category archive */ if (is_category()) { ?>				
<h3>You're Browsering Archive for the '<?php echo single_cat_title(); ?>' Category</h3>
 
<php /* If this is a tag archive */ } elseif (is_tag()) { ?>
<h3>You're Browsering Archive for the ‘<?php echo single_tag_title(); ?>’ Tag</h3>
 
<php /* If this is a daily archive */ } elseif (is_day()) { ?>
<h3>You're Browsering Archive for <?php the_time('F jS, Y'); ?></h3>
 
<php /* If this is a monthly archive */ } elseif (is_month()) { ?>
<h3>You're Browsering Archive for <?php the_time('F, Y'); ?></h3>
 
<php /* If this is a yearly archive */ } elseif (is_year()) { ?>
<h3>You're Browsering Archive for <?php the_time('Y'); ?></h3>
 
<php /* If this is a search */ } elseif (is_search()) { ?>
<h3>Search Results</h3>
 
<php /* If this is an author archive */ } elseif (is_author()) { ?>
<h3>Author Archive</h3>

上面的语句加在if while语句–也就是下面两句之间

<php if (have_posts()) { ?>
<php while (have_posts()) : the_post(); ?>

现在提示信息就能“自动判断”显示了。不过Theme里有tag.php的话,Tag存档页是调用tag.php,可以在其中你希望显示的位置加上single_tag_title。

You're Browsering Archive for the ‘<php echo single_tag_title(); ?>’ Tag