Cum să obții numele elementului de meniu curent în loc de lista completă de elemente
Aș dori să construiesc o structură de meniu unde poți vedea doar elementul de meniu al paginii curente, ca pe acest site web http://www.bigspaceship.com/services/
Am căutat și am următoarea funcție momentan:
<?php
$menu_items = wp_get_nav_menu_items( 'main-menu' );
foreach( $menu_items as $item ) {
print_r( $item ) ; // vezi cu ce poți lucra
// continuă
}
Cum pot afișa efectiv doar numele elementului de meniu pentru pagina curentă? Vreau să pot controla elementele de meniu din panoul de administrare, adică să pot schimba numele fiecărui meniu din admin și să se actualizeze dinamic.
Mulțumesc pentru orice ajutor.
În fiecare element de meniu,
object_id
conține ID-ul obiectului la care se referă elementul de meniu. Acesta poate fi un ID de post/pagina/CPT/termen. Dacă este un link personalizat, ID-ul se referă la el însuși. (Dacă dorești să afli ce tip de obiect este,object
conține această informație.)get_queried_object_id()
va returna ID-ul paginii curente.Putem folosi funcția API
wp_filter_object_list()
pentru a filtra orice elemente de meniu undeobject_id
nu se potrivește cu obiectul interogat.Vom rămâne cu un array care conține un singur element, așa că folosim funcția PHP
current
astfel încât$this_item
să conțină doar obiectul elementului de meniu care se potrivește.Și în final,
title
conține numele pe care l-am dat elementului de meniu.
$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;
Notă - Nu am testat acest cod, dar sper să funcționeze!
