我在php中有一个wordpress菜单,一切正常,但我有一个已创建的多站点wordpress,如果Wordpress安装中没有菜单,我希望它不显示任何内容,包括搜索,我的代码在需要时显示,当不需要时,它不会显示任何内容,但它仍会显示菜单中的搜索框。这是我的代码
<?php $menuClass = 'nav';
$menuID = 'primary-navigation';
$primaryNav = '';
if (function_exists('wp_nav_menu')) {
$primaryNav = wp_nav_menu( array(
'theme_location' => 'primary-nav',
'container' => '',
'fallback_cb' => '',
'menu_class' => $menuClass,
'menu_id' => $menuID,
'echo' => false ));
};
?>
<nav>
<div class="navmenu">
<div class="wrap">
<div id="primary-nav">
<?php echo($primaryNav); ?>
<div id="header-search" role="search"><form action="bloginfo("url");" method="get" id="search-form"><label><input type="text" name="s" id="site_search" placeholder="Search this site..." /></label><input type="submit" id="search-submit" value="Search" /></form></div>
</div>
</div>
</div>
</nav>
答案 0 :(得分:1)
编辑:
好的,您需要先查看导航菜单是否存在
<?php
$primaryNav = '';
if ( has_nav_menu( 'primary-nav' ) ) {
$primaryNav = wp_nav_menu( array(
'theme_location' => 'primary-nav',
'container' => '',
'fallback_cb' => '',
'menu_class' => 'primary-navigation',
'menu_id' => 'nav',
'echo' => false ));
}
$search_out = '<div id="header-search" role="search">
<form action="bloginfo("url");" method="get" id="search-form">
<label><input type="text" name="s" id="site_search" placeholder="Search this site..." /></label>
<input type="submit" id="search-submit" value="Search" />
</form>
</div>';
?>
<nav>
<div class="navmenu">
<div class="wrap">
<div id="primary-nav">
<?php ($primaryNav!='') ? _e($primaryNav . $search_out) : '';
?>
</div>
</div>
</div>
</nav>
首先检查'primary-nav'
位置是否有导航菜单,如果有,则将其打印出来。在此之前,它是空的。然后你检查它是否为空(!=''
)。如果这个条件为真,它会将其与搜索一起反映出来,如果没有,它就会赢得。如果有<nav>
,您可以创建一个if子句,使整个$primaryNav
部分显示。
EDIT2:
您的旧代码也可能有效,只需使用上面的代码检查它是否为空。