【问题标题】:Change sidebar navigation based on current post根据当前帖子更改侧边栏导航
【发布时间】:2012-03-03 12:39:42
【问题描述】:

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

For example when main category A is selected...

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

...选择B时:

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

问题是,A 是默认的(当您第一次访问博客时),但是当用户从 B1 类别中选择一篇文章时,回发会发送到服务器并显示该文章。但随后 A 又被选中了。

我的想法是检查当前显示的帖子并基于此切换导航。但是当代码在sidebar.php而不是在wordpress循环中时,如何才能知道当前显示的是哪篇文章呢?

有人有什么建议吗?

【问题讨论】:

    标签: php wordpress navigation categories


    【解决方案1】:

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

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

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

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

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

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

    或者:

    第二。您可以在 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 可以是您包含在模板中的小部件化 php 文件。

    您可以将 b_content.php 作为另一种选择。

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

    谢谢你, 伊恩

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多