【问题标题】:How to hide Search Bar along with Wordpress Menu如何隐藏搜索栏和 Wordpress 菜单
【发布时间】:2014-10-17 20:07:02
【问题描述】:

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

【问题讨论】:

  • fallback_cb 设置为false,默认为wp_nav
  • 完成了,但仍然离开搜索框和按钮
  • 我改了代码,试试看是否可行。

标签: php html wordpress search


【解决方案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' 位置是否有导航菜单,如果有,则将其打印出来。在此之前,它是空的。然后检查它是否为空(!='')。如果该条件为真,它将与搜索一起回显,如果不是,则不会。如果有 $primaryNav,您可能会创建一个 if 子句,让整个 &lt;nav&gt; 部分出现。

编辑2:

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

【讨论】:

  • 您介意在我的代码中帮助我吗?
  • 没有菜单的时候还是会显示,没有菜单的时候还是会显示搜索:/
  • 尝试删除$primaryNav='';,因为这基本上是将变量设置为空,所以它已经设置好了。
  • 这也没有改变任何东西:/
  • 我回家再看看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-31
  • 2010-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-11
  • 1970-01-01
相关资源
最近更新 更多