X

Cómo usar la salida de submenú separada de WP_nav_menu

Snippets de IsItWP

¿Estás buscando una forma de usar la salida de submenú separada de wp_nav_menu? Si bien probablemente haya un plugin para esto, hemos creado un fragmento de código rápido que puedes usar para la salida de submenú separada de wp_nav_menu en WordPress.

Instrucciones:

Todo lo que tienes que hacer es agregar este código al archivo functions.php de tu tema o a un plugin específico del sitio:

/**
 * WP_nav_menu separate submenu output.
 *
 * Optional $args contents:
 *
 * string theme_location - The menu that is desired.  Accepts (matching in order) id, slug, name. Defaults to blank.
 * string xpath - Optional. xPath syntax.
 * string before - Optional. Text before the menu tree.
 * string after - Optional. Text after the menu tree.
 * bool echo - Optional, default is TRUE. Whether to echo the menu or return it.
 *
 * @param array $args Arguments
 * @return String If $echo value is set to FALSE.
 */
function px_the_submenu( $args = array() )
{
 
    $defaults = array(
        'theme_location' => '',
        'xpath' => "./li[contains(@class,'current-menu-item') or contains(@class,'current-menu-ancestor')]/ul",
        'before' => '',
        'after' => '',
        'echo' => true
    );
    $args = wp_parse_args( $args, $defaults );
    $args = (object) $args;
 
    $output = array();
 
    $menu_tree = wp_nav_menu( array( 'theme_location' => $args->theme_location, 'container' => '', 'echo' => false ) );
    $menu_tree_XML = new SimpleXMLElement( $menu_tree );
    $path = $menu_tree_XML->xpath( $args->xpath );
 
    $output[] = $args->before;
 
    if( ! empty( $path ) )
    {
        $output[] = $path[0]->asXML();
    }
 
    $output[] = $args->after;
 
    if( $args->echo )
        echo implode('', $output );
    else
        return implode('', $output );
 
}

Nota: Si es la primera vez que agregas fragmentos de código en WordPress, consulta nuestra guía sobre cómo agregar fragmentos de código correctamente en WordPress, para que no rompas accidentalmente tu sitio.

Si te gustó este fragmento de código, considera echar un vistazo a nuestros otros artículos en el sitio como: los 9 mejores plugins de gestión de anuncios de WordPress para aumentar los ingresos y cómo crear correctamente una página de inicio de sesión personalizada en WordPress.

Comentarios   Deja una respuesta

Agrega un comentario

Nos complace que hayas elegido dejar un comentario. Ten en cuenta que todos los comentarios se moderan de acuerdo con nuestra política de privacidad, y todos los enlaces son nofollow. NO uses palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.

Lista de verificación para lanzar WordPress

La lista de verificación definitiva para lanzar WordPress

Hemos recopilado todos los elementos esenciales de la lista de verificación para el lanzamiento de tu próximo sitio web de WordPress en un práctico ebook.
¡Sí, envíame el eBook gratis!