Как получить ID текущего пункта меню?
7 июн. 2011 г., 00:20:39
Просмотры: 27.1K
Голосов: 3
Я пытаюсь получить id пункта меню, который имеет класс "current-menu-item". Не id текущей страницы, а именно id элемента навигации.
Пожалуйста, помогите

Leroy
61
Комментарии
Все ответы на вопрос
3
0
Возможно, с небольшим опозданием, но есть еще один способ сделать это:
$menu = wp_get_nav_menu_items($menu_id,array(
'posts_per_page' => -1,
'meta_key' => '_menu_item_object_id',
'meta_value' => $post->ID // текущий отображаемый пост
));
var_dump($menu[0]->ID);
Поскольку элементы меню являются типами записей, вы можете использовать все параметры WP-Query, включая мета-запрос. Приведенный выше код выбирает все элементы меню, связанные с текущей записью, из меню, которое вы указываете через $menu_id
.

daniel.auener
151
23 нояб. 2012 г. 10:28:11
0
Это должно решить проблему Как получить заголовок current-menu-item в виде переменной?
но измените
$GLOBALS['wpse16243_title'] = $menu_item->title;
на
$GLOBALS['wpse16243_title'] = $menu_item->ID;
и теперь вы можете использовать глобальную переменную $wpse16243_title
для получения ID

Leroy
61
7 июн. 2011 г. 12:15:26
3
Лучшим способом будет использовать фильтр nav_menu_css_class
. Вот как это может выглядеть:
function wpse19375_nav_class( $classes, $item ){
if( !in_array( 'current-menu-item', $classes ) )
return $classes;
// $item - это объект 'current-menu-item'.
return $classes;
}
add_filter( 'nav_menu_css_class', 'wpse19375_nav_class', 10, 2 );

John P Bloch
11K
7 июн. 2011 г. 00:53:08
Похожие вопросы
2
ответов
3
ответов
4
ответов