¿Cómo hago para que mi página sola categoría wp_nav_menu para resaltar el padre?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/1481

  •  16-10-2019
  •  | 
  •  

Pregunta

Con el nuevo sistema wp_nav_menu, es posible añadir una categoría como un elemento de menú, así que en mi ejemplo, tengo una categoría de 'noticias', que es un elemento de submenú de 'Acerca de'.

About (page)
--news (category)
--history (page)
--contact us (page)

El menú destacando CSS recoge de corriente de menú y los padres y corriente-menu-ancestro, de manera que cuando estoy en una sección submenú, el elemento de menú de nivel superior (por ejemplo, 'Acerca de') se pone de relieve cuando visito ' noticias.

Esto funciona muy bien, aparte de cuando visito un blog en la categoría 'Noticias', que coincide con is_single () y in_category ( 'noticias').

Por lo que yo puedo ver en Firebug, la 'corriente de menú y los padres' y 'corriente-menu-ancestro' se aplica al elemento de menú 'noticias', sin embargo no se aplica a la 'Acerca de' menú de nivel superior artículo.

¿Hay algo que me falta en la creación de mi menú? He intentado usar una costumbre andador, sin embargo, parece que los antepasados ??de menú inicial que no se están configurados correctamente?

Parece que mi única solución (sin recurrir a un truco jQuery desagradable) es crear una página de 'noticias' que consulta los mensajes de noticias, en lugar de señalar a la noticia 'categoría'.

¿Alguna idea?

Gracias, Dan

Actualizar con el ejemplo de código 09/09/2010

La forma en que se encuentra actualmente, la visualización de una sola página en la categoría Noticias http://www.example.com/2010/09/top-news-did-you-know/ :

<li id="menu-item-28" class="menu-item menu-item-type-post_type menu-item-28"><a href="http://www.example.com/about/">About Us</a>
<ul class="sub-menu">
<li id="menu-item-71" class="menu-item menu-item-type-taxonomy"><a href="http://www.example.com/category/events/">Events</a></li>
<li id="menu-item-70" class="menu-item menu-item-type-taxonomy current-post-ancestor current-menu-parent current-post-parent current-menu-parent"><a href="http://www.example.com/category/news/">News &#038; views</a></li>
<li id="menu-item-88" class="menu-item menu-item-type-post_type"><a href="http://www.example.com/contact-us/">Contact Us</a></li>
</ul></li>

Así que ya ves que "Sobre Nosotros" no tiene ningún tipo CSS para indicar que es uno de los padres de la página que está viendo actualmente.

¿Cómo creo que debería funcionar (y para ser honesto, si no lo hace, entonces es un error debido a la falta de aplicación):

<li id="menu-item-28" class="menu-item menu-item-type-post_type current-menu-ancestor current-menu-parent current_page_parent current_page_ancestor menu-item-28"><a href="http://www.example.com/about/">About Us</a>
<ul class="sub-menu">
<li id="menu-item-71" class="menu-item menu-item-type-taxonomy"><a href="http://www.example.com/category/events/">Events</a></li>
<li id="menu-item-70" class="menu-item menu-item-type-taxonomy current-post-ancestor current-menu-parent current-post-parent current-menu-parent"><a href="http://www.example.com/category/news/">News &#038; views</a></li>
<li id="menu-item-88" class="menu-item menu-item-type-post_type"><a href="http://www.example.com/contact-us/">Contact Us</a></li>
</ul></li>

Esto tiene las clases CSS current-menu-ancestor current-menu-parent current_page_parent current_page_ancestor unidos al elemento de menú de nivel superior. Funciona de la siguiente manera para cada otra página, o incluso durante la visualización de la propia categoría, simplemente no es una sola página en una categoría.

¿Fue útil?

Solución

En la actualidad esto no es posible si un elemento de menú de la página es un padre a un elemento de menú categoría.

En el ejemplo, si Acerca era una categoría y News fue la categoría infantil a continuación, la (categoría) elemento de menú Acerca sería asignado:

  • corriente post-ancestro
  • corriente de menú principal
  • corriente post-matriz

Otros consejos

También estaba teniendo el mismo problema. No pude encontrar un hack php, por lo que utiliza una javascript:

function findAncestor(){
    var currentParentLi = document.getElementsByClassName("current-menu-parent");
    if(currentParentLi){
        var currentAncestorLi = currentParentLi[0].parentNode.parentNode;
        if(currentAncestorLi && currentAncestorLi.tagName=="LI"){
            currentAncestorLi.className += " current-menu-ancestor";
        }
    }
}

Ponga el código anterior en un archivo .js, a continuación referencia a él en la cabecera de la página y llamar a la FindAncestor () la función de window.onload, es decir:.

<script type="text/javascript">
<!--
window.onload = function() {
    findAncestor()
}
//-->
</script>

Estoy de acuerdo con Chris_O

Por lo tanto, tengo una portada estática, 2 Categoría principal + 1 subcategorías dentro de ellos, y otra página. Impulsado por WordPress 3.0.1 y 1.8 Tesis, usando el menú de Wordpress en lugar de menú de Tesis.

Para poner de relieve la categoría principal utilicé: .Current-post-antepasado a { Antecedentes: #FFFFFF;}

(este punto culminante de la categoría principal cuando con sencillo en el post)

Para poner de relieve que se utilizan subcategorías: .sub menú .Current post-ancestro a { background: # F0EEC2;}

(este punto culminante la subcategoría -bajo categoría- principal cuando con sencillo en el puesto de subcategoría)

Me gustaría ambos "Categoría principal" y "subcategoría" ser destacado.

Pero no puedo encontrar el truco.

Pierre

Usted puede encontrar este foro hilo muy informativo, ya que estoy más cerca de la solución.

http://diythemes.com/forums/showthread.php?39258-Category-highlighting-for-single-post-%28-wp-menu-%29 .

Pierre

Licenciado bajo: CC-BY-SA con atribución
scroll top