En la mayoría de los casos, al diseñar los menús de navegación de WordPress, todo lo que puede hacer es agregar lecciones de CSS desde el panel de administración de WordPress. Recientemente, mientras trabajaba en una empresa, nos encontramos en un escenario difícil. Queríamos agregar una clase personalizada a un elemento de menú en particular solo en páginas individuales. Después de mirar alrededor durante algún tiempo, no pudimos encontrar ninguna resolución. Nuestro último recurso fue preguntar en Twitter. Otto (@ Otto42) respondió afirmando que el uso de filtros tiene el potencial, pero no hay documentación para el filtro.

Después de mirar el núcleo durante algún tiempo, encontramos la respuesta. Es importante incluir el siguiente código en su archivo Capabilities.php:

//Filtering a Class in Navigation Menu Merchandise
add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 2);
operate special_nav_class($lessons, $merchandise){
     if(is_single() && $merchandise->title == 'Weblog'){
             $lessons[] = 'current-menu-item';
     }
     return $lessons;
}

El código anterior solo verifica que se trata de una única página web creada y que el título del elemento del menú es weblog. Si los estándares coinciden, contendrá una categoría «Elemento de menú actual». Nos hubiera encantado agregar una clase personalizada para que funcione con este diseño en el que estamos trabajando.

En primer lugar, en caso de que no pueda encontrar más información, queríamos mantener los productos del weblog resaltados en el menú cuando el consumidor estaba en un solo stand. Esto les permitió ver que las únicas publicaciones eran parte del weblog. Por lo general, esto no tiene sentido, pero dentro del diseño que nos gusta tiene sentido.

En caso de que definitivamente estuvieras buscando este código, esperamos que este texto te haya ayudado. También puede probar varias variables de $ merchandise. Algunos ejemplos son: $ artículo-> ID, $ artículo-> título, $ artículo-> xfn

Respuesta rápida: después de publicar este texto en Twitter, uno de nuestros clientes @dbrabyn notó que es posible que acabáramos de completar esto con las lecciones de CSS Physique. Por ejemplo:

.single #navigation .leftmenublog div{show: inline-block !essential;}

Básicamente, hemos agregado otro div para mostrar un ícono de flecha en nuestro menú. Esta flecha solo se probaría si la categoría estuviera cruzada y seleccionada. En todos los demás casos se mostró lo siguiente: ninguno; Al usar la clase Physique, solo mostramos el factor div para la clase de menú exacta.