Как получить заголовок текущего элемента меню как переменную?
10
Возможно ли получить current-menu-item как переменную php?
Я перечисляю музеи категории через пункт меню «музеи, которые мы поддерживаем», поэтому я хотел бы получить бит «музеи, которые мы поддерживаем» и показать его где-нибудь?
Это возможно с помощью фильтрации wp_nav_menu_objects, которая является самым простым местом для проверки того, какой элемент является текущим элементом меню, потому что WordPress уже добавил классы для вас .
привет Ян - просто интересно, есть ли способ создать массив дочерних элементов $ menu_item-> current items? Пробовал несколько вещей, но не очень далеко ..!
3
удалось это с помощью вашего фильтра - ответьте ниже. Ура!
v3nt
Ян Фабри / Я пытался использовать, wpse16243_wp_nav_menu_objectsчтобы получить текущий идентификатор меню. Но это не соответствует. Переключение между домашней страницей и пунктом меню не всегда дает мне правильный пункт меню - это своего рода «лаги». Любое предложение о том, как я могу получить текущий идентификатор меню?
Стивен
Есть ли причина, по которой вы вводите имя функции wpse16243? Я вижу этот странный тип имени довольно распространенным и удивляюсь, что это такое. Отказ от ответственности: Wordpress Noob.
Стивен Уоткинс
2
@Steve: Просто уникальный префикс: WordPress Stack Exchange question number 16243. Если люди напрямую копируют этот код, он не будет конфликтовать с другими плагинами, которые могут иметь те же имена функций.
<?phpfunction my_get_menu_item_name( $loc ){global $post;
$locs = get_nav_menu_locations();
$menu = wp_get_nav_menu_object( $locs[$loc]);if($menu){
$items = wp_get_nav_menu_items($menu->term_id);foreach($items as $k => $v){// Check if this menu item links to the current pageif($items[$k]->object_id == $post->ID){
$name = $items[$k]->title;break;}}}return $name;}
Затем вызовите functionс названием места в меню нав вы хотите использовать:
«Музеи, которые мы поддерживаем» генерируется заголовком поста, заголовком страницы, заголовком категории и т. Д. (Или, если вы используете пользовательское меню навигации, это может быть пользовательский заголовок).
Что вы пытаетесь сделать с этим текстом? Где вы пытаетесь это отобразить? Я предполагаю, что вы пытаетесь отобразить его на странице указателя категорий (поскольку вы указываете, что это так current-menu-item)? Если это так, просто позвоните, <?php single_cat_title(); ?>чтобы вывести название категории.
Если вам нужна дополнительная информация о категории, вы можете использовать что-то вроде:
$cat = get_the_category();
$currentcat = $cat[0];
Что делает доступными следующие переменные:
$currentcat=>cat_ID // Category ID
$currentcat=>cat_name // Category Name (Same as Title)
$currentcat=>category_nicename // Category Slug
$currentcat=>category_description // Category Description
$currentcat=>category_count // Category Count (# of Posts w/ this Category)
Если вы где - то другое , чем Категория Index Page, вам необходимо пройти $ CATID к этим функциям.
РЕДАКТИРОВАТЬ:
Поскольку вы указали, что «Музеи, которые мы поддерживаем» - это пользовательский заголовок меню, самым простым способом было бы переименовать категорию из «Музеев» в «Музеи, которые мы поддерживаем» (примечание: вы можете оставить слаг museums, без изменений). Однако это будет означать, что «Музеи, которые мы поддерживаем» будет отображаться в качестве заголовка категории, где бы он ни выводился в вашем шаблоне. Если это приемлемо, то не беспокойтесь.
В противном случае вам нужно будет использовать что-то вроде wp_get_nav_menu_items()( ссылка на Кодекс ), чтобы получить заголовок для определенного пункта меню.
эй чип - это эта страница; bfami.modernactivity.co.uk/category/museum, так что в основном кошка - это «музей», но я хочу показать «MUSEUMS WE SUPPORT», которая представляет собой навигационную метку (пользовательский заголовок), установленную на странице меню. Думаешь, можно как-нибудь это схватить?
v3nt
Что помогает. Смотрите мой ответ изменить. У вас есть пара вариантов: переименовать категорию или использовать wp_get_nav_menu_items().
Чип Беннетт
ура чип - просто поменял название категории в итоге! Просто подумал, что будет простой способ получить ярлык меню ...
wpse16243_wp_nav_menu_objects
чтобы получить текущий идентификатор меню. Но это не соответствует. Переключение между домашней страницей и пунктом меню не всегда дает мне правильный пункт меню - это своего рода «лаги». Любое предложение о том, как я могу получить текущий идентификатор меню?wpse16243
? Я вижу этот странный тип имени довольно распространенным и удивляюсь, что это такое. Отказ от ответственности: Wordpress Noob.WordPress Stack Exchange question number 16243
. Если люди напрямую копируют этот код, он не будет конфликтовать с другими плагинами, которые могут иметь те же имена функций.Вы можете использовать
wp_get_nav_menu_items()
. Вот примерfunction
:Затем вызовите
function
с названием места в меню нав вы хотите использовать:источник
источник
Я не уверен, что точно следую.
«Музеи, которые мы поддерживаем» генерируется заголовком поста, заголовком страницы, заголовком категории и т. Д. (Или, если вы используете пользовательское меню навигации, это может быть пользовательский заголовок).
Что вы пытаетесь сделать с этим текстом? Где вы пытаетесь это отобразить? Я предполагаю, что вы пытаетесь отобразить его на странице указателя категорий (поскольку вы указываете, что это так
current-menu-item
)? Если это так, просто позвоните,<?php single_cat_title(); ?>
чтобы вывести название категории.Если вам нужна дополнительная информация о категории, вы можете использовать что-то вроде:
Что делает доступными следующие переменные:
Если вы где - то другое , чем Категория Index Page, вам необходимо пройти $ CATID к этим функциям.
РЕДАКТИРОВАТЬ:
Поскольку вы указали, что «Музеи, которые мы поддерживаем» - это пользовательский заголовок меню, самым простым способом было бы переименовать категорию из «Музеев» в «Музеи, которые мы поддерживаем» (примечание: вы можете оставить слаг
museums
, без изменений). Однако это будет означать, что «Музеи, которые мы поддерживаем» будет отображаться в качестве заголовка категории, где бы он ни выводился в вашем шаблоне. Если это приемлемо, то не беспокойтесь.В противном случае вам нужно будет использовать что-то вроде
wp_get_nav_menu_items()
( ссылка на Кодекс ), чтобы получить заголовок для определенного пункта меню.источник
wp_get_nav_menu_items()
.