WordPress群里有朋友问到如何使不同的页面调用不同的侧边栏,比如首页的侧边栏和分类页的侧边栏不一样,或者分类页的侧边栏和内容页的又不一样,这样的功能,我们可以使用Widget Logic 插件来实现。
[caption id="attachment_124" align="alignnone" width="267" caption="wegdit logic 设置"]
Widget Logic 插件的使用可以看我前面的文章:Widget logic让你的侧边栏与众不同
本文将介绍另外一种不使用插件的方法,用代码来实现。当然,这种方法是有前提的,前提就是你的侧边栏不是通过管理控制板后台里面的小工具来生成的,而是在模板文件sidebar.php中代码生成的。只有是代码生成的侧边栏,才能同样用代码来控制不同页面显示不同的侧边栏内容。
下面的代码是我的sidebar.php模板文件里面的部分代码:
[php]</pre><ul><li><h2>标签云图</h2><div> </div></li><li><h2>最新文章</h2><br /><%%KEEPWHITESPACE%%> <!--?php query_posts('showposts=7&cat=-111'); ?--> <br /><br /><br /></li></ul><pre>
<br />[/php]
假如我们只想让标签云图在首页显示,不在分类栏目下面显示出来,那么我们可以在标签云图的代码前面加上条件控制代码,is_home(),最后的代码如下:
[php]<br /><!--?php if(is_home()): ?--></pre><ul><li><h2>标签云图</h2><div> </div></li></ul><pre>
<br /><!--?php endif; ?--></pre><ul><li><h2>最新文章</h2><br /><%%KEEPWHITESPACE%%> <!--?php query_posts('showposts=7&cat=-111'); ?--> <br /><br /><br /></li></ul><pre>
<br />[/php]
和Widget Logic 插件相比,通过代码来控制侧边栏内容的显示更加强大,更加灵活,适用于Widget Logic 插件的控制条件is_home()、is_single()、is_category()等条件同样适用于代码,而且代码能控制的通过插件不一定能实现。
比如首页的侧边栏里面的最新文章调用所有分类的最新文章,而某个分类页面的侧边栏里面的最新文章显示该分类里面的最新文章。这种情况,我们可以通过加入下面的代码来实现:
[php]<!--?php if (in_category('111')) : ?-->[/php]上面代码中的111就是你指定的分类的ID.
总结一下:其实两种方法都能实现不同页面显示不同的侧边栏内容,插件的方法比较简单,适用于不会代码的童鞋;代码来控制的方法要求你对WordPress的基本代码流程比较熟悉,有一定的编程基础才行。
没有评论:
发表评论