chevron-up bell reply instagram twitter2 feed3 finder search-25px-p0
换了主题,回归原生评论系统。

打造更为强健的 WordPress 导航栏

2009-01-17 . 阅读: 1,358 views

打造更为强健的 WordPress 导航栏

[作者:shawn'blog]

很多同学喜欢把 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 } ?>

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

到这里,我的主要内容就说完了。估计有些同学还不知道我在说什么,所以我决定配点图。以我自己的 Blog 为例。

在首页时,导航栏显示:

在单篇文章页,导航栏显示:

浏览到按月存档时,导航栏又成了这个样子:

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

分享到: 更多

左岸

爱读书,爱生活!

发表评论





2 Comments On 打造更为强健的 WordPress 导航栏

  1. 很强大,新手学习了,不过还是慢慢来的好,不然一下子消化不了那么多,呵呵。。。

  2. 这插件要用好也似门学问啊!…..