как вручную указать текущую активную страницу с помощью wp\_nav\_menu ()

<p>есть ли способ вручную указать, какая страница в настоящее время "активна" при использовании <code>wp\_nav\_menu()</code>?</p><p>у меня есть страница "продукты", и на этой странице у меня есть ссылки на различные (динамические) пользовательские таксономии. когда я нажимаю одну из этих таксономий, я остаюсь на странице "продукты", но <code>wp\_nav\_menu()</code> теряет ссылку на тот факт, что я все еще на странице "продукты". есть ли способ, которым я могу это исправить?</p><p>спасибо!</p><p>джон</p>

<p>если вы просто хотите добавить класс <code>current\_page\_item</code> к одному элементу меню, вы можете подключиться к фильтру <code>nav\_menu\_css\_class</code> и добавить этот класс, если это необходимо. это называется <a href="http://core.trac.wordpress.org/browser/branches/3.0/wp-includes/nav-menu-template.php#l76">когда меню печатается</a> .</p><p>если вы хотите получить доступ ко всему меню и добавить классы, подключите фильтр <code>wp\_get\_nav\_menu\_items</code>, где вы получите весь массив <code>$items. вы можете редактировать свойства classes отдельных элементов.

<strong> @jon </strong>пока вы используете <body <?php body_class(); ?>>, wordpress будет назначать класс current_page_item вашему меню вместе с current_page_parent, если вы используете выпадающие меню.

ян упомянул фильтр nav_menu_css_class, поэтому я посмотрел его, и этот пример был мне полезен. источник: <a href="https://codex.wordpress.org/plugin_api/filter_reference/nav_menu_css_class">https://codex.wordpress.org/plugin_api/filter_reference/nav_menu_css_class function my_special_nav_class( $classes, $item ) { if ( is_single() && $item->title == 'blog' ) { $classes[] = 'special-class'; } return $classes; } add\_filter( 'nav\_menu\_css\_class', 'my\_special\_nav\_class', 10, 2 ); </code></pre>