Изменить боковую панель навигации на основе текущей записи - PullRequest
0 голосов
/ 03 марта 2012

У меня есть навигация по категориям на боковой панели 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 голосов
/ 08 марта 2012

Я использовал этот плагин: http://www.screenshine.net/blog/1474_wordpress-plugin-show-active-category а затем с помощью jQuery выполнить поиск элемента с выделенным классом, выполнить поиск родительского элемента div, проверить, является ли он A или B, и на основе того, что я показываю, A и скрыть B или показать B и скрыть A.

0 голосов
/ 03 марта 2012

2 Идеи, как вы могли бы это сделать.

Во-первых. Вы можете использовать 2 плагина: xwidgets, которая позволяет выбирать содержимое боковой панели для каждой страницы и для каждой публикации и комбинировать его с виджетом WP Category Post List. Вот ссылки:

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 может быть виджетом php-файла, который вы включаете в свои шаблоны.

Вы можете удвоить это с b_content.php как другой выбор.

Надеюсь, это поможет. Я могу объяснить дальше, если вам нужно.

Спасибо, Ian

...