如何隐藏搜索栏以及Wordpress菜单

时间:2014-08-24 14:53:21

标签: php html wordpress search

我在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>

1 个答案:

答案 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:

您的旧代码也可能有效,只需使用上面的代码检查它是否为空。