gpt4 book ai didi

php - WordPress 菜单放置在标题之外

转载 作者:行者123 更新时间:2023-12-03 18:46:24 25 4
gpt4 key购买 nike

如果用户转到主页以外的页面,那么我的页眉会更改布局。

除了函数 wp_nav_menu 之外,一切正常。

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

代码如下:

<?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>';
?>

为了简短起见,我删除了 if 语句的 true 值。

现在我遇到的问题是菜单完全放在 header

之外

这是 HTML 输出:

<div class="menu-hoofdmenu-container">
<ul id="menu-hoofdmenu" class="menu">
<li>Menu item 1</li>
<li>Menu item 2</li>
<li>Menu item 3</li>
</ul>
</div>
<header>
<div class="hoofdmenu">
<div class="hamburger">
<a href="#" id="click-a"><img width="80" height="80" src="http://www.url.nl/wp-content/themes/themename/images/hamburger.png"></a>
</div>
</div>
</div>
</header>

关于为什么 wp_nav_menu 放在 header 之外有什么想法吗?

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

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>

最佳答案

(在答案底部添加了更新,您可以跳过第一部分)

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

wp_nav_menu( array $args = array() )

Displays a navigation menu.

因此,当您使用

$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>';

更新:

尝试以下操作:

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>';
}

更好的更新:

使用您之前使用的相同代码,只需将“echo”选项添加到 args 数组。看来您可以告诉函数返回输出而不是打印它。

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

用法:

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

关于php - WordPress 菜单放置在标题之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46886016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com