Как получить текущее имя пункта меню страницы, а не полный список пунктов меню

Я хотел бы создать структуру меню, в которой вы можете видеть только пункт меню текущей страницы, например, на этом веб-сайте http://www.bigspaceship.com/services/

Я ищу вокруг, и до сих пор у меня есть следующая функция

<?php $menu_items = wp_get_nav_menu_items( 'main-menu' ); foreach( $menu_items as $item ) { print_r( $item ) ; // see what you can work with // carry on } 

Как я могу напечатать только имя пункта меню для текущей страницы? Я хочу по-прежнему контролировать элемент меню из панели инструментов, что означает, что я хочу изменить имя каждого меню в администраторе и динамически обновлять его.

Спасибо за любую помощь.

  1. Внутри каждого элемента меню object_id содержит идентификатор любого объекта, к которому относится элемент меню. Это будет идентификатор должности / страницы / CPT / term. Если это настраиваемая ссылка, идентификатор относится к самому себе. (Если вы хотите знать, какой тип объекта он есть, object содержит это.)

  2. get_queried_object_id() предоставит вам идентификатор текущей страницы.

  3. Мы можем использовать функцию API wp_filter_object_list() для фильтрации любых пунктов меню, где object_id не соответствует запрашиваемому объекту.

  4. Затем мы останемся с массивом, содержащим один элемент, поэтому мы используем current php, так что $this_item теперь содержит только соответствующий объект элемента меню.

  5. и, наконец, title содержит имя, которое мы дали пункту меню.

 $menu_items = wp_get_nav_menu_items( 'main-menu' ); $this_item = current( wp_filter_object_list( $menu_items, array( 'object_id' => get_queried_object_id() ) ) ); echo $this_item->title; 

Заметьте, я не тестировал это, так что, надеюсь, это сработает!