Cum să obții numele elementului de meniu curent în loc de lista completă de elemente

14 sept. 2015, 07:18:43
Vizualizări: 18.2K
Voturi: 1

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.

0
Toate răspunsurile la întrebare 1
2
  1. Î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.)

  2. get_queried_object_id() va returna ID-ul paginii curente.

  3. Putem folosi funcția API wp_filter_object_list() pentru a filtra orice elemente de meniu unde object_id nu se potrivește cu obiectul interogat.

  4. 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.

  5. Ș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!

14 sept. 2015 07:50:24
Comentarii

Comentariu: Funcționează

Felix Felix
20 ian. 2017 17:39:45

Ce se întâmplă dacă pagina curentă este o arhivă?

Mithc Mithc
11 iul. 2018 20:34:17