根据当前帖子更改侧边栏导航

时间:2012-03-03 12:39:43

标签: php wordpress navigation categories

我在wordpress侧边栏中有一个类别导航,其中包含两个主要类别A和B.在这些类别中有子类别,如A1,A2,......

例如,当选择主要类别A时......

|   A   |   B   |
|       --------|
| - A1          |
| - A2          |
| - A3          |

...当选择B时:

|   A   |   B   |
|--------       |
| - B1          |
| - B2          |
| - B3          |

问题是,A是默认值(当您第一次访问博客时)但是当用户从类别B1中选择文章时,会将回发发送到服务器并显示文章。但是再次选择A。

我的想法是检查当前显示的帖子并根据此切换导航。但是,当代码在sidebar.php而不是在wordpress循环中时,如何找出当前显示的文章?

有人有建议吗?

2 个答案:

答案 0 :(得分:0)

2如何做到这一点的想法。

首先。你可以使用2个插件: xwidgets,它允许您在每页和每个帖子的基础上选择侧边栏内容,并将其与WP类别帖子列表小部件组合。 以下是链接:

http://wordpress.org/extend/plugins/xwidgets/

http://wordpress.org/extend/plugins/wp-category-posts-list/

这是2个非常强大的插件。

因此,每次发布内容时,您都可以选择要显示的内容。

OR:

二。您可以在sidebar.php中插入一些自定义字段,告诉您要显示哪些内容可以通过帖子页面中的自定义字段设置进行选择。

如果您从未使用过自定义字段,那么这是一个很棒的介绍教程: http://net.tutsplus.com/tutorials/wordpress/quick-tip-a-4-minute-crash-course-in-wordpress-custom-fields/

您可能希望在侧边栏中使用此代码的某些版本:

<?php // conditional sidebar display
if (get_post_meta($post->ID, "aContent", true)) {
include('a_content.php'); 
} ?>

通过这个例子,a_content.php可能是你在模板中包含的widgetized php文件。

你可以用b_content.php作为另一种选择加倍。

希望这会有所帮助。 如果需要,我可以进一步解释。

谢谢你, 伊恩

答案 1 :(得分:0)

我最终使用了这个插件:http://www.screenshine.net/blog/1474_wordpress-plugin-show-active-category 然后使用jQuery搜索带有突出显示的类的项目,搜索它的父div,检查它是否为A或B,并根据它显示A并隐藏B或显示B并隐藏A.