Los menús de WordPress son increíbles. La interfaz de arrastrar y soltar hace que sea muy fácil tanto para los desarrolladores de temas de WordPress como para los usuarios. En el pasado le hemos mostrado cómo añadir un menú personalizado en WordPress junto con el estilo de un menú personalizado. Una cosa que está limitada en la interfaz visual de los menús es que sólo se pueden añadir enlaces (páginas, categorías o enlaces personalizados). ¿Qué pasa si quieres añadir un elemento personalizado a tus menús de WordPress? Tal vez quieras añadir una barra de búsqueda, o un enlace de entrada/salida, la fecha de hoy, o cualquier otra cosa en un menú de WordPress. El hecho de que no exista una interfaz visual no significa que no sea posible. En este artículo, le mostraremos cómo puede utilizar el gancho wp_nav_menu_items para añadir elementos personalizados a todos o a menús específicos de WordPress.
Nota: este tutorial está dirigido a desarrolladores de temas de WordPress, por lo que se espera que conozcas html/css básico y una comprensión justa de cómo funcionan los temas de WordPress.
Obviamente, necesita tener habilitado el menú personalizado en sus temas antes de poder seguir adelante.
Empecemos con lo básico. Necesitamos añadir nuestro propio filtro en wp_nav_menu_items hook. Un ejemplo se vería así:
1234567add_filter(‘wp_nav_menu_items’, ‘your_custom_menu_item’, 10, 2 );functionyour_custom_menu_item ( $items, $args) { if(is_single() && $args->theme_location == ` primary’) { $items.= ‘.
«Devuelve los artículos}
Ahora, como puede ver, puede usar las sentencias condicionales junto con el argumento theme_location. Esto le permite apuntar a una ubicación específica del menú con cualquier condición que desee. Si no quieres la sentencia condicional, no tienes que usarla. Simplemente añádalo a una ubicación específica del menú o viceversa.
Ahora que ha visto un ejemplo básico, permítanos mostrarle algunos ejemplos específicos de cómo funcionaría esto.
Adición de enlaces de entrada y salida a un menú específico de WordPress
Si desea ofrecer a sus usuarios la posibilidad de iniciar y cerrar sesión, un lugar en el que puede agregar los vínculos es en su menú personalizado. El fragmento de abajo mostrará los enlaces de entrada y salida a sus usuarios de manera apropiada en la ubicación del menú: primaria. Puede cambiar la ubicación del menú si lo desea.
12345678910add_filter(‘wp_nav_menu_items’, ‘add_loginout_link’, 10, 2 );functionadd_loginout_link( $items, $args) { if(is_user_logged_in() && $args->theme_location == ‘primary’) { $items.= ‘.
elseif(!is_user_logged_in() && $args->theme_location ==’primary’) { $items.= ‘.
«Devuelve los artículos}
Agregar una barra de búsqueda a un menú específico
¿Desea añadir una barra de búsqueda a un menú específico? Pues no busque más. Puede hacerlo pegando el siguiente fragmento:
1234567add_filter(‘wp_nav_menu_items’,’add_search_box_to_menu’, 10, 2);functionadd_search_box_to_menu( $items, $args) { if( $args->theme_location == ` primary’) return$items.»»; devolver$items;}
Agregar la fecha de hoy a un menú específico de WordPress
El fragmento de abajo agregará la fecha de hoy a su menú de WordPress. Puede usar nuestro manual de fecha de hoy para ajustar el código si lo desea.
12345678910add_filter(‘wp_nav_menu_items’,’add_todaysdate_in_menu’, 10, 2);functionadd_todaysdate_in_menu( $items, $args) { if( $args->theme_location == ` primary’) { $todaysdate= date(‘l jS F Y’); $items.= ‘.
«Devuelve los artículos}
Esperamos que este artículo permita a los desarrolladores ampliar la funcionalidad de sus temas.
Deja una respuesta