没有菜单项时隐藏包含Div

时间:2017-01-20 10:48:40

标签: php html wordpress

希望有人能提供帮助,

我目前正在使用此网站:http://new.leicesterymca.co.uk/youth-community/您可以在此页面上看到子菜单正在显示,因为有要显示的子页面。如果您点击“联系人”'菜单没有显示。

但是,蓝色背景div仍显示......

这是我目前的代码:

<div class="sub-nav-container-full">
  <div class="container"> 
    <div class="sub-page-menu">
      <?php
        $menu = wp_nav_menu(
            array (
              'theme_location' => 'header-menu',
              'sub_menu' => true,
              'echo' => FALSE,
              'fallback_cb' => '__return_false'
            )
        );
        if ( ! empty ( $menu ) )
        {
        ?>

        <?php
            echo $menu;
        }
      ?>
    </div>
  </div>
</div>

我如何更改它以说“如果没有子菜单则隐藏包含div;

<div class="sub-nav-container-full"></div>

摆脱蓝条......

希望有人可以帮忙:)

非常感谢,

肖恩。

2 个答案:

答案 0 :(得分:0)

包含div的选项#1仅在需要时创建:

<?php
  $menu = wp_nav_menu(
      array (
        'theme_location' => 'header-menu',
        'sub_menu' => true,
        'echo' => FALSE,
        'fallback_cb' => '__return_false'
      )
  );
  if ( ! empty ( $menu ) )
  {
    echo '<div class="sub-nav-container-full">
          <div class="container">
          <div class="sub-page-menu">';
    echo $menu;
    echo '</div></div></div>';
  }
?>

选项#2:包含div始终存在,但如果为空则隐藏。像这样添加else块:

  // same as before
  if ( ! empty ( $menu ) )
  {
    // same as before
  }
  else
  {
    echo '<div class="sub-nav-container-full" style="display: none;">
          <div class="container">
          <div class="sub-page-menu">';
    echo '</div></div></div>';
  }

考虑使用visibility: hidden,而不是display: none。元素不会显示,但它仍占用布局中的空间。

选项#2可以轻松优化,减少重复行。

答案 1 :(得分:0)

试试这样:

<div class="sub-nav-container-full">
  <div class="container"> 
      <?php
        $menu = wp_nav_menu(
            array (
              'theme_location' => 'header-menu',
              'sub_menu' => true,
              'echo' => FALSE,
              'fallback_cb' => '__return_false'
            )
        );
        if ( ! empty ( $menu ) )
        {
            echo '<div class="sub-page-menu">'.$menu.'</div>';
        }
      ?>
  </div>
</div>