¿Cómo obtener el título del elemento del menú actual como variable?
10
¿Es posible obtener current-menu-item como una variable php?
Estoy enumerando la categoría museos a través del elemento del menú 'museos que apoyamos', así que me gustaría obtener el bit 'museos que apoyamos' y mostrarlo en algún lugar.
Esto es posible mediante el filtrado wp_nav_menu_objects, que es el lugar más fácil para verificar qué elemento es el elemento del menú actual, porque WordPress ya agregó las clases por usted .
hola Jan: ¿me pregunto si hay una manera de crear una matriz de $ menu_item-> hijos de elementos actuales? Intenté varias cosas pero no llegué muy lejos ...!
v3nt
logró esto con la ayuda de su filtro: responda a continuación. ¡Salud!
v3nt
Jan Fabry / Intenté usar wpse16243_wp_nav_menu_objectspara recuperar la ID del menú actual. Pero no es consistente. Cambiar entre la página de inicio y un elemento de menú no siempre me da el elemento de menú correcto, es como "retrasos". ¿Alguna sugerencia sobre cómo puedo recuperar la ID del menú actual?
Steven
¿Hay alguna razón por la que prefacio el nombre de la función con wpse16243? Veo este extraño tipo de nombre bastante común y me pregunto de qué se trata. Descargo de responsabilidad: Wordpress noob.
Stephen Watkins
2
@Steve: Sólo un prefijo único: WordPress Stack Exchange question number 16243. Si las personas copian directamente este código, no entrará en conflicto con otros complementos que puedan compartir los mismos nombres de funciones.
<?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;}
Luego llame al functioncon el nombre de la ubicación del menú de navegación que desea utilizar:
Los "Museos que respaldamos" se generan mediante un Título de publicación, Título de página, Título de categoría, etc. (o, si está utilizando un Menú de navegación personalizado, podría ser un Título personalizado).
¿Qué intentas hacer con este texto? ¿Dónde intentas mostrarlo? ¿Supongo que está tratando de mostrarlo en la página de índice de categoría (ya que indica que es current-menu-item)? Si es así, simplemente llame <?php single_cat_title(); ?>para generar el Título de categoría.
Si necesita información de categoría adicional, puede usar algo como:
$cat = get_the_category();
$currentcat = $cat[0];
Lo que pone a disposición las siguientes variables:
$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)
Si estás en un lugar otro que la categoría Índice de Página, que tendrá que pasar el $ catid a estas funciones.
EDITAR:
Dado que indicó que "Museos que respaldamos" es un título de menú personalizado, el enfoque más sencillo sería cambiar el nombre de la categoría de "Museos" a "Museos que respaldamos" (nota: puede dejar la babosa museums, sin cambios). Sin embargo, hacerlo significaría que los "Museos que apoyamos" se mostrarán como el Título de la categoría en cualquier otro lugar en el que pueda aparecer en su plantilla. Si eso es aceptable, entonces no se preocupe.
De lo contrario, tendrá que usar algo como wp_get_nav_menu_items()( Ref. Codex ) para obtener el Título del elemento de menú específico.
hola chip - es esta página; bfami.modernactivity.co.uk/category/museum, así que básicamente el gato es 'museo' pero quiero mostrar 'MUSEOS QUE APOYAMOS', que es la etiqueta de navegación (título personalizado) establecida en la página de menús. ¿Crees que es posible agarrar eso de alguna manera?
v3nt
Eso ayuda. Ver mi respuesta editar. Tiene un par de opciones: cambie el nombre de la categoría o use wp_get_nav_menu_items().
Chip Bennett
cheers chip: ¡acabo de cambiar el título de categoría al final! Solo pensé que habría una manera fácil de tomar la etiqueta del menú ...
wpse16243_wp_nav_menu_objects
para recuperar la ID del menú actual. Pero no es consistente. Cambiar entre la página de inicio y un elemento de menú no siempre me da el elemento de menú correcto, es como "retrasos". ¿Alguna sugerencia sobre cómo puedo recuperar la ID del menú actual?wpse16243
? Veo este extraño tipo de nombre bastante común y me pregunto de qué se trata. Descargo de responsabilidad: Wordpress noob.WordPress Stack Exchange question number 16243
. Si las personas copian directamente este código, no entrará en conflicto con otros complementos que puedan compartir los mismos nombres de funciones.Puedes usar
wp_get_nav_menu_items()
. Aquí hay una muestrafunction
:Luego llame al
function
con el nombre de la ubicación del menú de navegación que desea utilizar:fuente
fuente
No estoy seguro de seguir exactamente.
Los "Museos que respaldamos" se generan mediante un Título de publicación, Título de página, Título de categoría, etc. (o, si está utilizando un Menú de navegación personalizado, podría ser un Título personalizado).
¿Qué intentas hacer con este texto? ¿Dónde intentas mostrarlo? ¿Supongo que está tratando de mostrarlo en la página de índice de categoría (ya que indica que es
current-menu-item
)? Si es así, simplemente llame<?php single_cat_title(); ?>
para generar el Título de categoría.Si necesita información de categoría adicional, puede usar algo como:
Lo que pone a disposición las siguientes variables:
Si estás en un lugar otro que la categoría Índice de Página, que tendrá que pasar el $ catid a estas funciones.
EDITAR:
Dado que indicó que "Museos que respaldamos" es un título de menú personalizado, el enfoque más sencillo sería cambiar el nombre de la categoría de "Museos" a "Museos que respaldamos" (nota: puede dejar la babosa
museums
, sin cambios). Sin embargo, hacerlo significaría que los "Museos que apoyamos" se mostrarán como el Título de la categoría en cualquier otro lugar en el que pueda aparecer en su plantilla. Si eso es aceptable, entonces no se preocupe.De lo contrario, tendrá que usar algo como
wp_get_nav_menu_items()
( Ref. Codex ) para obtener el Título del elemento de menú específico.fuente
wp_get_nav_menu_items()
.