我相信这可能是由于你的主题或其他插件,过滤wp_nav_menu_args
以及更改items_wrap
价值我使用空白WordPress 4.9.4安装测试了您提供的代码,输出是正确的。
你可以试着传球items_wrap
使用默认值:
wp_nav_menu( [
\'menu\' => \'Primary Navigation\',
\'menu_class\' => \'this-is-the-menu-class\',
\'menu_id\' => \'this-is-the-menu-id\',
\'container\' => \'div\',
\'container_class\' => \'this-is-the-container-class\',
\'container_id\' => \'this-is-the-container-ID\',
\'items_wrap\' => \'<ul id="%1$s" class="%2$s">%3$s</ul>\'
] );
但如果有什么东西过滤掉了,那也没什么区别。
我建议将此添加到子主题的函数中。php文件,删除所有过滤器并查看是否修复了它(以证明它是导致问题的过滤器):
remove_all_filters( \'wp_nav_menu_args\' );
您还可以将其添加到子主题的函数中。php,要在屏幕上转储
$args
数组,您可以在其中检查
items_wrap
:
add_filter( \'pre_wp_nav_menu\', \'smyles_dump_nav_menu_args\', 9999, 2 );
function smyles_dump_nav_menu_args( $null, $args ){
ob_start();
echo \'<pre>\';
var_dump($args);
echo \'</pre>\';
$content = ob_get_contents();
ob_end_clean();
return $content;
}
如果将真值(在我们的示例中,它是HTML)返回到此过滤器,则会导致它在页面上回显
echo
在
wp_nav_menu
确保添加echo
和设置true
在里面wp_nav_menu
电话:
wp_nav_menu( [
\'menu\' => \'Primary Navigation\',
\'menu_class\' => \'this-is-the-menu-class\',
\'menu_id\' => \'this-is-the-menu-id\',
\'container\' => \'div\',
\'container_class\' => \'this-is-the-container-class\',
\'container_id\' => \'this-is-the-container-ID\',
\'echo\' => true
] );