Tutoriales de WordPress de Confianza, cuando más los necesitas.
Guía para Principiantes de WordPress
Copa WPB
25 Millones+
Sitios web que usan nuestros plugins
16+
Años de experiencia en WordPress
3000+
Tutoriales de WordPress de expertos

Cómo agregar la primera y última clase CSS a los elementos del menú de WordPress

¿Alguna vez has visto sitios web con elementos de menú de primer y último elemento con un estilo único? Eso no es casualidad, es CSS inteligente en acción. Esta técnica puede resaltar enlaces importantes, como tu página de contacto o una oferta especial.

Muchos de nuestros lectores han intentado agregar clases personalizadas a sus elementos de menú, solo para descubrir que cuando reorganizan su menú, el estilo se rompe. Los elementos etiquetados como 'primero' y 'último' ya no están en esas posiciones, lo que deja el menú con un aspecto inconsistente.

Es por eso que esta guía te mostrará cómo agregar una clase .first y .last que se mantendrá en tus elementos de menú, incluso si los reorganizas más tarde. Cubriremos dos métodos: un filtro para temas clásicos y selectores CSS para todos los temas, incluidos los temas de bloques.

Cómo agregar la clase primera y última a los elementos del menú de navegación de WordPress

¿Por qué dar estilo diferente a los primeros y últimos elementos de navegación?

A veces, es posible que necesites agregar un estilo personalizado a los primeros y últimos elementos de un menú de navegación. Esto puede hacer que los enlaces importantes destaquen, como el enlace a tu formulario de contacto o la página de carrito de WooCommerce.

En este caso, podrías simplemente agregar una clase CSS personalizada a los elementos de menú primero y último. Sin embargo, si cambias el orden del menú en cualquier momento, esto podría romper completamente el estilo personalizado.

Por esta razón, recomendamos usar filtros en su lugar.

En esta guía, te mostraremos cómo estilizar el primer y último elemento de tu menú de navegación, para que puedas reorganizar el menú sin romper el estilo personalizado. Simplemente usa los enlaces rápidos a continuación para saltar directamente al método que deseas usar:

Consejo profesional: ¿Quieres resaltar algún elemento del menú en tu sitio web? Consulta nuestra guía sobre cómo resaltar un elemento del menú en WordPress para más información.

Método 1: Agregar clases de primer y último elemento usando un filtro (Recomendado)

Nota: Este método solo funciona con un tema de WordPress clásico. Si estás usando un tema de bloques, ve al Método 2.

La forma más fácil de estilizar los elementos de tu menú de navegación es agregar un filtro a tu tema.

A menudo encontrarás fragmentos de código en tutoriales de WordPress con instrucciones para agregarlos al archivo functions.php de tu tema.

El mayor problema es que incluso un pequeño error en el fragmento de código personalizado puede romper tu sitio de WordPress y hacerlo inaccesible. Sin mencionar que, si actualizas tu tema de WordPress, perderás todas tus personalizaciones.

Ahí es donde entra WPCode .

Este plugin gratuito facilita la adición de CSS, PHP, HTML personalizados y más a WordPress sin poner tu sitio en riesgo.

Lo primero que necesitas hacer es instalar y activar el plugin gratuito WPCode. Para más detalles, consulta nuestra guía paso a paso sobre cómo instalar un plugin de WordPress.

Tras la activación, dirígete a Snippets de código » Añadir Snippet.

Agregar un fragmento de código personalizado usando WPCode

Aquí, simplemente pasa el ratón sobre ‘Añadir tu código personalizado’.

Cuando aparezca, haz clic en ‘Usar snippet’.

Agregar un fragmento de código personalizado a un sitio web de WordPress usando WPCode

Para empezar, escribe un título para el fragmento de código personalizado. Puede ser cualquier cosa que te ayude a identificar el fragmento en el panel de WordPress.

Después de eso, abre el menú desplegable ‘Tipo de código’ y selecciona ‘Fragmento de PHP’.

Agregar un fragmento PHP personalizado a WordPress usando WPCode

Luego puedes añadir el siguiente PHP a la caja de código:

function wpb_first_and_last_menu_class($items) {
    $items[1]->classes[] = 'first';
    $items[count($items)]->classes[] = 'last';
    return $items;
}
add_filter('wp_nav_menu_objects', 'wpb_first_and_last_menu_class');

Después de eso, estás listo para desplazarte a la parte superior de la pantalla y hacer clic en el interruptor ‘Inactivo’ para que cambie a ‘Activo’.

Finalmente, haz clic en ‘Guardar fragmento’ para que el fragmento de PHP se active.

Agregar estilos personalizados a un menú de navegación usando WPCode

Esto crea las clases CSS .first y .last para tus elementos de menú primero y último. Ahora puedes usar estas clases para aplicar estilos únicos a estos elementos en tu menú de navegación personalizado.

Para hacer esto, necesitarás agregar un segundo fragmento a tu sitio web de WordPress. Para empezar, crea un nuevo fragmento de código personalizado siguiendo el mismo proceso descrito anteriormente.

Después de eso, escribe un título para el fragmento de código personalizado.

Luego, abre el menú desplegable 'Tipo de código', pero esta vez selecciona 'Fragmento CSS'.

Estilizar los elementos del menú primero y último usando WPCode

Para esta guía, simplemente pondremos en negrita el primer y último elemento del menú agregando el siguiente formato CSS a la caja de código:

.first a {font-weight: bold;}

.last a {font-weight: bold;}

Hecho esto, haz clic en el interruptor 'Inactivo' para que cambie a 'Activo'.

Agregar estilos personalizados a un menú con código

Finalmente, haz clic en 'Guardar fragmento' para que el fragmento CSS se active.

Ahora, si visitas tu sitio web, verás el menú recién estilizado en vivo.

Un ejemplo de un menú de WordPress, creado usando WPCode

Método 2: Estilizar los primeros y últimos elementos usando selectores CSS (Funciona con todos los temas)

Si no quieres usar un plugin de fragmentos de código, puedes estilizar el primer y último elemento del menú usando selectores CSS. Sin embargo, este método podría no funcionar con algunos navegadores antiguos, como Internet Explorer.

Teniendo esto en cuenta, es una buena idea probar tu sitio web de WordPress en diferentes navegadores.

Para seguir este método, necesitarás agregar código a la hoja de estilos de tu tema o a la sección 'CSS adicional' del Personalizador de temas de WordPress.

Si no has hecho esto antes, consulta nuestra guía sobre cómo agregar fácilmente CSS personalizado a tu sitio de WordPress.

El primer paso es editar el archivo style.css de tu tema o ir a Apariencia » Personalizar y luego hacer clic en ‘CSS adicional’.

El personalizador de temas de WordPress

Después de eso, procede a agregar el siguiente fragmento de código a tu sitio:

ul#yourmenuid > li:first-child { }
ul#yourmenuid > li:last-child { }

Ten en cuenta que deberás reemplazar ‘yourmenuid’ con el ID de tu menú de navegación.

Los selectores ‘first-child’ y ‘last-child’ seleccionan el primer y último hijo de su padre, que son los primeros y últimos elementos del menú de navegación.

Por ejemplo, usamos este código para poner en negrita los primeros y últimos elementos del menú de navegación en nuestro blog de WordPress:

ul#primary-menu-list > li:first-child a {
    font-weight: bold;
}
ul#primary-menu-list > li:last-child a {
    font-weight: bold;
}
Usar selectores CSS para estilizar los elementos del menú primero y último de manera diferente

Si usas un tema de bloques de WordPress, entonces el Personalizador de temas faltará en tu administrador de WordPress. Necesitas ingresar esta URL en tu navegador para acceder al Personalizador de temas:

https://yourdomainname.com/wp-admin/customize.php

Asegúrate de reemplazar el dominio con el nombre de dominio de tu sitio web.

Después de eso, abre la pestaña ‘CSS adicional’ como antes e inserta el siguiente código. Nota cómo el código se ve ligeramente diferente, ya que no necesitas agregar el ID de tu menú.

li:first-child a,
li:last-child a {
    background-color: black;
    border: none;
    color: white !important; /* Ensures the color white is prioritized */
    padding: 15px 32px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    margin: 4px 2px;
    cursor: pointer;
    border-radius: 12px;
}

Siéntete libre de personalizar el código según tus necesidades. En el siguiente ejemplo, convertimos los primeros y últimos enlaces en botones.

Así es como se ve:

Insertar CSS personalizado en el tema de bloques para estilizar el primer y último enlace de navegación

Esperamos que este tutorial te haya ayudado a aprender cómo agregar las clases .first y .last a los menús de navegación de WordPress. También te puede interesar nuestro artículo sobre cómo crear un menú de navegación vertical en WordPress y nuestra guía para principiantes sobre cómo crear un menú desplegable en un sitio de WordPress.

Si te gustó este artículo, suscríbete a nuestro canal de YouTube para obtener tutoriales en video de WordPress. También puedes encontrarnos en Twitter y Facebook.

Descargo de responsabilidad: Nuestro contenido es compatible con el lector. Esto significa que si haces clic en algunos de nuestros enlaces, podemos ganar una comisión. Consulta cómo se financia WPBeginner, por qué es importante y cómo puedes apoyarnos. Aquí está nuestro proceso editorial.

El Kit de herramientas definitivo para WordPress

Obtén acceso GRATUITO a nuestro kit de herramientas: ¡una colección de productos y recursos relacionados con WordPress que todo profesional debería tener!

Interacciones del lector

19 CommentsLeave a Reply

  1. he modificado un poco el código para que funcione también con submenús:

    function wpb_first_and_last_menu_class($items) {

    foreach($items as $k => $v){ $parent[$v->menu_item_parent][] = $v; }

    foreach($parent as $k => $v){ $v[0]->classes[] = ‘first’; $v[count($v)-1]->classes[] = ‘last’; }

    return $items;

    }

    add_filter(‘wp_nav_menu_objects’, ‘wpb_first_and_last_menu_class’);

  2. Gracias por este buen código...

    ¿Qué hay del menú infantil, el primer y el último elemento?
    Se aplicó solo para el menú padre.

    ¿Tienes alguna idea sobre el último elemento del submenú?

  3. Anyone have any tip about use add_filter(”); for wp_nav_menu using STARKERS?
    can’t make it works :( JS and CSS are fine to do that, it is just frustrating to don’t be able to fix it from the back…
    thanks to share anyway!!

  4. Junto con algunas otras adiciones a functions.php que he intentado, este código no logra etiquetar un elemento del menú como el primer o último elemento del menú cuando están en un submenú. ¡Una solución para esto sería genial!

  5. ¡Genial! Esto es particularmente interesante porque tengo que clasificar más de 2 elementos de menú…
    ¡Ahora lo entiendo!

    Gracias

  6. ¡Gracias por esto! Perdona si me lo perdí, pero ¿hay un ejemplo del menú para ver la diferencia en la navegación creada por esta clase? ¡Gracias de nuevo!

    • El sitio que diseñamos para nuestro cliente aún no está en línea. Pero la razón principal fue que queríamos tener un borde a la izquierda del primer elemento del menú. Todos los demás elementos tenían un borde a la derecha con un relleno y margen específicos. Usamos la última clase para eliminar el margen derecho y el borde derecho porque no era necesario. Estaba chocando con el contenedor de envoltura. Espero que puedas visualizarlo.

      Administrador

Deja una respuesta

Gracias por elegir dejar un comentario. Ten en cuenta que todos los comentarios son moderados de acuerdo con nuestra política de comentarios, y tu dirección de correo electrónico NO será publicada. Por favor, NO uses palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.