Php WordPress菜单位于标题外

Php WordPress菜单位于标题外,php,wordpress,wp-nav-menu-item,Php,Wordpress,Wp Nav Menu Item,如果用户转到主页以外的页面,则“我的标题”会更改布局 除了功能wp\u nav\u菜单,其他一切都正常工作 首先,我检查用户是否在主页上。根据结果,用户将显示两个标题中的一个 代码如下: <?php $menu = wp_nav_menu( array( 'theme_location' => 'hoofdmenu' ) ); echo is_front_page() ? '' : ' <header> <div class

如果用户转到主页以外的页面,则“我的标题”会更改布局

除了功能
wp\u nav\u菜单
,其他一切都正常工作

首先,我检查用户是否在主页上。根据结果,用户将显示两个标题中的一个

代码如下:

<?php 
    $menu = wp_nav_menu( array( 'theme_location' => 'hoofdmenu' ) );
    echo is_front_page() ? '' : '
    <header>
        <div class="hoofdmenu">
            <div class="hamburger">
                <a href="#" id="click-a"><img width="80" height="80" src="'.get_bloginfo('template_directory').'/images/hamburger.png"></a>
            </div>
            '.$menu.'
        </div>
    </header>';
?>
关于为什么将
wp\u nav\u菜单
置于
标题
之外,您有什么想法吗

-------更新--------

echo是首页()
“.wp_导航菜单(数组('theme_location'=>'hoofdmenu'))。”
(在答案底部添加了更新,您可以跳过第一部分)

根据,该函数显示(
echo
)菜单,不返回该菜单

wp_导航_菜单(数组$args=array())

显示导航菜单

因此,当您使用

$menu = wp_nav_menu( array( 'theme_location' => 'hoofdmenu' ) );
实际上是打印菜单,而不是将其保存在
$menu
变量中,因此它是在标题代码之前打印的

解决办法是:

echo is_front_page() ? '' : '
<header>
    <div class="hoofdmenu">
        <div class="hamburger">
            <a href="#" id="click-a"><img width="80" height="80" src="'.get_bloginfo('template_directory').'/images/hamburger.png"></a>
        </div>
        '.wp_nav_menu( array( 'theme_location' => 'hoofdmenu' ) ).'
    </div>
</header>';

简单的解决方案。如果将echo设为false,代码将正常工作。 来自WP文档

//'echo'
//(bool) Whether to echo the menu or return it. Default true.

$menu = wp_nav_menu( array( 'theme_location' => 'hoofdmenu', 'echo' => false ) );
echo is_front_page() ? '' : '
<header>
    <div class="hoofdmenu">
        <div class="hamburger">
            <a href="#" id="click-a"><img width="80" height="80" src="'.get_bloginfo('template_directory').'/images/hamburger.png"></a>
        </div>
        '.wp_nav_menu( array( 'theme_location' => 'hoofdmenu' ) ).'
    </div>
</header>';
if(!is_front_page()){

    echo '<header>
        <div class="hoofdmenu">
            <div class="hamburger">
                <a href="#" id="click-a"><img width="80" height="80" src="'.get_bloginfo('template_directory').'/images/hamburger.png"></a>
            </div>';

            wp_nav_menu( array( 'theme_location' => 'hoofdmenu' ) );

    echo '
        </div>
    </header>';
}
$menu = wp_nav_menu( array( 'theme_location' => 'hoofdmenu', 'echo' => false) );
//'echo'
//(bool) Whether to echo the menu or return it. Default true.

$menu = wp_nav_menu( array( 'theme_location' => 'hoofdmenu', 'echo' => false ) );