我很抱歉这个不着边际的问题,但我不明白:
我正在使用wp\\U nav\\U菜单的函数参考,这是我的代码行:
<?php wp_nav_menu( array(\'theme_location\' => \'header-menu\',\'items_wrap\' => \'%3$s\') ); ?>
但菜单显示在
<ul><li>
无论如何(我想删除它并使菜单水平)。我可以在
items_wrap
, 它将始终是默认值
<ul>
theme\\u位置可能也不起作用,但因为我只有一个菜单,所以它会显示正确的菜单。
如果这很愚蠢的话,我想再次道歉,我想是的,但我需要你的耐心和帮助,我只是一个初学者。
完整索引。php:
<?php get_header(); ?>
<?php if(isset($_GET[\'nav\'])) {
$nav = $_GET[\'nav\']; } ?>
<body>
<div id="topbar">
<div id="orangebar"></div>
<div id="top-middle">
<a href="<?php echo home_url(); ?>"><img id="logo" src="<?php bloginfo(\'template_directory\'); ?>/img/logo.png" /></a>
<div id="menu">
<?php
remove_all_actions( \'wp_nav_menu_args\' );
remove_all_actions( \'wp_nav_menu\' );
echo "\\n\\n<!-- start menu -->\\n";
wp_nav_menu( array( \'theme_location\' => \'header-menu\', \'items_wrap\' => \'j\' ) );
echo "\\n<!-- end menu -->\\n\\n";
?>
</div>
</div>
</div>
<div id="center">
<div id="centershade"><img id="shade" src="<?php bloginfo(\'template_directory\'); ?>/img/shade.png" /></div>
<div id="main">
<a href="facebook link" target="_blank"><img id="fbbutton" src=" <?php bloginfo(\'template_directory\'); ?>/img/buttons/fb.gif" /></a>
<a href="twitter link" target="_blank"><img id="twitbutton" src="<?php bloginfo(\'template_directory\'); ?>/img/buttons/twitter.gif" /></a>
<div id="main-content">
<?php if (!( isset($nav) ) ) { include(\'startpage.php\');} else { include($nav+\'.php\');} ?>
</div>
</div>
</div>
<?php get_footer(); ?>
功能。php:
<?php add_action( \'init\', \'register_my_menu\' );
function register_my_menu() {
register_nav_menu( \'header-menu\', __( \'Header Menu\' ) );
}
?>
好的,请试着克服不规范的命名和奇怪的实现方式,这是三分之一的学习、三分之一的测试和三分之一的开发。。
SO网友:kaiser
这个items_wrap
论点实际上是sprintf
-ed参数。
当你看着Core source:
\'items_wrap\' => \'<ul id="%1$s" class="%2$s">%3$s</ul>\'
。。。你看到你必须使用
arguments to let core do its work.
sprintf( $args->items_wrap, esc_attr( $wrap_id ), esc_attr( $wrap_class ), $items );
这是
%
-参数:
%1$s
-> $wrap_id
%2$s
-> $wrap_class
%3$s
-> $items
现在,要更换容器,您需要使用以下物品:
\'items_wrap\' => \'<div id="1%$s" class="%s$s">%3$s</div>\'
请记住,这不是容器。容器本身只允许是
div
或
nav
要素但您可以扩展允许的容器元素列表:
$allowed_tags = apply_filters( \'wp_nav_menu_container_allowedtags\', array( \'div\', \'nav\' ) );
SO网友:Charles Clarkson
评论时间太长了。尝试用此代码来代替您最初在问题中发布的代码进行调试:
<?php
remove_all_actions( \'wp_nav_menu_args\' );
remove_all_actions( \'wp_nav_menu\' );
echo "\\n\\n<!-- start menu -->\\n";
wp_nav_menu( array( \'theme_location\' => \'primary\', \'items_wrap\' => \'%3$s\' ) );
echo "\\n<!-- end menu -->\\n\\n";
?>
检查浏览器页面源中的
<ul></ul>
标签。
这应该测试是否有任何内容通过PHP使用过滤器覆盖菜单参数或菜单输出。额外的换行符(\\n
) 我在echo中放置的语句应该使菜单更容易在浏览器页面源中找到。
好吧,还是一样的结果:评论>div>ul>li。。。
奇怪的以开头的完整标记是什么<!-- start menu -->
议论使用items_wrap
参数已删除,在我的服务器上如下所示:
<!-- start menu -->
<div class="menu-primary-container"><ul id="menu-primary-1" class="menu">
顺便说一句,您可以通过在注释前后添加反勾号来向注释添加代码和标记。在我的键盘上,backtick键位于数字1键的左侧。