¿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