Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 根据当前帖子更改侧栏导航_Php_Wordpress_Navigation_Categories - Fatal编程技术网

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

Php 根据当前帖子更改侧栏导航,php,wordpress,navigation,categories,Php,Wordpress,Navigation,Categories,我在wordpress侧边栏中有一个类别导航,其中包含两个主要类别a和B。在这些类别中有A1、A2等子类别 例如,当选择主类别A时 | A | B | | --------| | - A1 | | - A2 | | - A3 | 。。。当选择B时: | A | B | |-------- | | - B1 | | - B2 | | - B3

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

例如,当选择主类别A时

|   A   |   B   |
|       --------|
| - A1          |
| - A2          |
| - A3          |
。。。当选择B时:

|   A   |   B   |
|--------       |
| - B1          |
| - B2          |
| - B3          |
问题是,默认情况下(当您第一次访问博客时),但是当用户从类别B1中选择一篇文章时,回发将发送到服务器并显示该文章。但随后又选择了一个

我的想法是检查当前显示的帖子,并在此基础上切换导航。但是,当代码在
侧边栏.php
中而不是在wordpress循环中时,我如何找出当前显示的是哪篇文章呢


有人有什么建议吗?

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

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

这是两个非常强大的插件

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

或:

第二。您可以在sidebar.php中插入一些自定义字段,告诉用户通过帖子页面中的自定义字段设置来控制要显示的内容

如果您从未使用过自定义字段,这里有一个很棒的介绍教程:

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

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

在本例中,a_content.php可以是包含在模板中的widgetized php文件

您可以将b_content.php作为另一种选择,将其加倍

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

谢谢,,
伊恩

我最终使用了这个插件: 然后使用jQuery搜索带有突出显示的类的项,搜索它的父div,检查它是A还是B,并根据它是什么显示A和隐藏B,或显示B和隐藏A