【问题标题】:Get WordPress menu number of items获取 WordPress 菜单项数
【发布时间】:2016-07-02 16:12:54
【问题描述】:

我想知道是否可以在 WordPress 导航中获取项目数?我只需要顶级项目的数量。我正在尝试计算每个项目应该在导航栏中所占的百分比,所以如果我能得到项目的数量,我就能得到百分比。本来打算用Customizer让用户输入商品的数量,如果能自动得到这个数字就更好了。

【问题讨论】:

    标签: wordpress menu navigation


    【解决方案1】:

    您可以使用wp_get_nav_menu_items(),然后计算它返回的数组中的项目数。

    【讨论】:

      【解决方案2】:

      您可以使用 jQuery 或使用纯 CSS 使用 flex 来做到这一点。

      以下是两者的示例:

      var $items = $('nav.jquery > ul > li'),
        $itemsWidth = 100 / $items.length;
      
      $items.css({
        'width': $itemsWidth + '%'
      });
      nav ul {
        margin: 0;
        padding: 0;
      }
      nav.jquery > ul > li {
        display: block;
        position: relative;
        float: left;
        height: 40px;
        line-height: 40px;
        background-color: gray;
        text-align: center;
        color: white;
      }
      
      nav > ul > li > ul {
        position: absolute;
        top: 40px;
        display: none;
      }
      
      nav.flex{
        clear: both;
      }
      
      nav.flex > ul{
        display: flex;
      }
      
      nav.flex > ul > li{
        flex: 1;
        position: relative;
        height: 40px;
        line-height: 40px;
        background-color: green;
        text-align: center;
        color: white;
        list-style-type: none;
      }
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <nav class="jquery">
        <ul>
          <li>Item 1</li>
          <li>Item 2
            <ul>
              <li>Item 2/1</li>
              <li>Item 2/2</li>
              <li>Item 231</li>
            </ul>
          </li>
          <li>Item 3</li>
          <li>Item 4</li>
        </ul>
      </nav>
      
      <nav class="flex">
        <ul>
          <li>Item 1</li>
          <li>Item 2
            <ul>
              <li>Item 2/1</li>
              <li>Item 2/2</li>
              <li>Item 231</li>
            </ul>
          </li>
          <li>Item 3</li>
          <li>Item 4</li>
        </ul>
      </nav>

      【讨论】:

      • 我确实想到了这一点,但这依赖于启用 JavaScript,我想在服务器端执行它以确保它每次都能正常工作。如果我无法在 WordPress 上找到获取此信息的方法,我将不得不这样做
      • 你为什么不只使用css?
      • 如果您不想使用 css,可以添加 Walker 并计算那里的项目。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-21
      • 2015-02-23
      • 2017-06-08
      • 2018-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多