打造更为强健的 WordPress 导航栏

很多同学喜欢把 WordPress 的”页面”作为栏目,放在 header 附近。美其名曰:导航。

其实 WordPress 的”页面”并不是人们经常会访问的内容,我估计我的固定页面甚至都没有人看。既然如此,为什么不让导航栏起到真正的导航作用,让它变得更有趣呢?

WordPress 有一组代码是拿来给我们应付不同情况的。这些代码原本为人熟知的领域是侧边栏,当需要在不同页面展示不同侧边栏的时候,它们可以大展拳脚。现在不妨将它们用在导航栏上,打造一组多变的导航栏。

先”展示”一下代码:

<?php if(is_home()); ?>, <?php if(is_single()); ?>, <?php if(is_page()); ?>, <?php if(is_category()); ?> 等等等等。。。

它们对应首页、单页、固定页面、分类等内容。

在首页上,展示页面列表无可厚非。可是当访客进入单篇日志,页面列表就没有什么作用了,或许换成类似”路径”的东西会更为实用。

所以我这么写:

<?php if(is_single()) { ?>
<?php while (have_posts()) : the_post(); ?>
<li><a href=”/”>首页</a></li>
<li><?php the_category(‘, ‘) ?></li>
<li><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”<?php the_title(); ?>”><?php the_title(); ?></a></li>
<?php endwhile; ?>
<?php } ?>

意思是,当进入单篇日志,导航栏显示内容为:首页 该文章所属分类 该文章的标题

同时,隐藏原本的导航栏目,也就是页面列表:

<?php if(!is_single()) { ?>
<?php wp_list_pages(); ?>
<?php } ?>

即如果不是单篇文章,则显示原本的页面列表(如果是单篇文章就不显示了)。

还可以这样写:

<?php if(is_home() OR is_page()) { ?>
<?php wp_list_pages(); ?>
<?php } ?>

代表只有在首页或者固定页面的时候才在导航栏显示页面列表。

还可以用 is_tags、is_year、is_month、is_day 来达到更细化的导航效果,只要自己好好将它们组合起来,强健的导航栏也不是什么神奇的东西。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据