Cómo obtener solo el nombre del ítem de menú de la página actual en lugar de la lista completa

14 sept 2015, 07:18:43
Vistas: 18.2K
Votos: 1

Me gustaría construir una estructura de menú donde solo se vea el ítem del menú correspondiente a la página actual, como en este sitio web http://www.bigspaceship.com/services/

He buscado y tengo la siguiente función hasta ahora:

<?php
$menu_items = wp_get_nav_menu_items( 'main-menu' );
foreach( $menu_items as $item ) {
  print_r( $item ) ; // Ver qué datos están disponibles
  // continuar
}

¿Cómo puedo imprimir solo el nombre del ítem de menú para la página actual? Quiero seguir controlando los ítems del menú desde el panel de administración, es decir, poder cambiar el nombre de cada elemento del menú en el admin y que se actualicen dinámicamente.

Gracias por cualquier ayuda.

0
Todas las respuestas a la pregunta 1
2
  1. Dentro de cada elemento del menú, object_id contiene el ID del objeto al que se refiere el elemento del menú. Este será un ID de post/página/CPT/término. Si es un enlace personalizado, el ID se refiere a sí mismo. (Si deseas saber qué tipo de objeto es, object contiene esa información.)

  2. get_queried_object_id() te dará el ID de la página actual.

  3. Podemos usar la función de la API wp_filter_object_list() para filtrar cualquier elemento del menú donde el object_id no coincida con el objeto consultado.

  4. Luego nos quedaremos con un arreglo que contiene un solo elemento, así que usamos current de PHP para que $this_item ahora contenga solo el objeto del elemento del menú que coincide.

  5. y finalmente, title contiene el nombre que le hemos dado al elemento del menú.

$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;

Nota: No he probado esto, ¡así que espero que funcione!

14 sept 2015 07:50:24
Comentarios

Comentario: Sí funciona

Felix Felix
20 ene 2017 17:39:45

¿Qué pasa si la página actual es un archivo?

Mithc Mithc
11 jul 2018 20:34:17