С новой системой wp_nav_menu можно добавить категорию в качестве элемента меню, поэтому в моем примере у меня есть категория «новости», которая является элементом подменю «О программе».
О программе(страница)
- новости (категория)
- история (страница)
- свяжитесь с нами (страница)
Меню с подсветкой CSSполучает данные от current-menu-parent и current-menu-ancestor, поэтому, когда я нахожусь в разделе подменю, элемент меню верхнего уровня (например, «О программе») выделяется при посещении «news».
Это прекрасно работает, за исключением случаев, когда я посещаю пост в категории «новости», который соответствует is_single () и in_category («новости»).
Насколько я могу видеть в Firebug, 'current-menu-parent 'и' current-menu-ancestor 'применяются к элементу меню' news ', однако они не применяются к элементу меню верхнего уровня' About '.
Есть ли что-то, что яотсутствует в настройке моего меню?Я пытался использовать пользовательский Walker, однако кажется, что предки начального меню не были настроены должным образом?
Кажется, мое единственное решение (без использования неприятного хака JQuery) - создать 'новость''страница, которая запрашивает сообщения новостей, а не указывает на категорию новостей.
Есть идеи?
Спасибо, Дан
Обновление с примером кода 09/09 /2010
Как сейчас, просматривая одну страницу в категории Новости http://www.example.com/2010/09/top-news-did-you-know/:
О нас
<li id="menu-item-71" class="menu-item menu-item-type-taxonomy"><a href="http://www.example.com/category/events/">Events</a></li>
<li id="menu-item-70" class="menu-item menu-item-type-taxonomy current-post-ancestor current-menu-parent current-post-parent current-menu-parent"><a href="http://www.example.com/category/news/">News & views</a></li>
<li id="menu-item-88" class="menu-item menu-item-type-post_type"><a href="http://www.example.com/contact-us/">Contact Us</a></li>
Итак, вы видите, что у "About Us" нет класса CSS, чтобы указывать, что он является родителем просматриваемой в данный момент страницы.
Как мне кажется, это должно бытьработать (и, честно говоря, если этого не сделать, то это ошибка из-за отсутствия реализации):
О нас
<li id="menu-item-71" class="menu-item menu-item-type-taxonomy"><a href="http://www.example.com/category/events/">Events</a></li>
<li id="menu-item-70" class="menu-item menu-item-type-taxonomy current-post-ancestor current-menu-parent current-post-parent current-menu-parent"><a href="http://www.example.com/category/news/">News & views</a></li>
<li id="menu-item-88" class="menu-item menu-item-type-post_type"><a href="http://www.example.com/contact-us/">Contact Us</a></li>
Имеется родительский элемент current-menu current-родительский current_page_parent current_page_ancestor классы CSSперейдите к пункту меню верхнего уровня.Это работает таким образом для любой другой страницы, или даже при просмотре самой категории, только ни одной страницы в категории.