Você está procurando uma maneira de usar a saída separada de submenu do wp_nav_menu? Embora provavelmente exista um plugin para isso, criamos um trecho de código rápido que você pode usar para usar a saída separada de submenu do wp_nav_menu no WordPress.
Instruções:
Tudo o que você precisa fazer é adicionar este código ao arquivo functions.php do seu tema ou a um plugin específico do site:
/**
* 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 );
}
Observação: Se esta é a sua primeira vez adicionando snippets de código no WordPress, consulte nosso guia sobre como adicionar snippets de código corretamente no WordPress, para não quebrar acidentalmente seu site.
Se você gostou deste trecho de código, considere conferir nossos outros artigos no site, como: 9 melhores plugins de gerenciamento de anúncios do WordPress para aumentar a receita e como criar corretamente uma página de login personalizada no WordPress.
Comentários Deixe uma resposta