X

Cómo utilizar WP_nav_menu para separar los submenús

Snippets by IsItWP

¿Está buscando una manera de utilizar wp_nav_menu separar la salida del submenú? Si bien es probable que haya un plugin para esto, hemos creado un fragmento de código rápido que puede utilizar para utilizar wp_nav_menu salida de submenú separado en WordPress.

Instrucciones:

Todo lo que tienes que hacer es añadir este código al archivo functions.php de tu tema o en 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 añades fragmentos de código en WordPress, consulta nuestra guía sobre cómo añadir correctamente fragmentos de código en WordPress, para no romper accidentalmente tu sitio.

Si te ha gustado este fragmento de código, por favor, considere la posibilidad de revisar nuestros otros artículos en el sitio como: 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

Añadir un comentario

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

WordPress Launch Checklist

La lista definitiva para lanzar WordPress

Hemos recopilado todos los elementos esenciales de la lista de comprobación para el lanzamiento de su próximo sitio web de WordPress en un práctico ebook.
Sí, envíeme el ¡gratuito!