如何按照与菜单相同的顺序对Get_Categories()进行排序?

时间:2018-12-05 作者:bigpotato

我使用了一个主题,我注意到它在菜单中动态显示了一系列类别:

enter image description here

我需要相同的类别列表,但页脚的HTML标记不同。目前,这是我在页脚中的内容:

enter image description here

页脚。php:

<?php
      $categories = get_categories();
      foreach($categories as $category) {
        echo \'<a href="\' . get_category_link($category->term_id) . \'">\' . $category->name . \'</a>\';
      }
?>
正如你所看到的,它的顺序与菜单中的顺序不同。

我试图用它来暗示我将如何循环遍历这些类别。然而,当我试图找到标题的模板时,我注意到它只是指向这个,我没有看到任何PHP/HTML:

    <nav class="main-navigation">

      <?php
        wp_nav_menu( array(
          \'theme_location\' => \'header-menu\',
          \'fallback_cb\' => \'false\',
        ) );
      ?>

    </nav><!-- /.main-navigation -->
我试着到处找header-menu.php 但它似乎不存在,可能是因为它来自主题。。?

register_nav_menus( array(
  \'header-menu\' => esc_html__( \'Header\', \'neori\' ),
) );
这是我想要的照片:

enter image description here

1 个回复
最合适的回答,由SO网友:RiddleMeThis 整理而成

没有标题菜单。php,这段代码正在创建一个WP菜单,看看at this.

您可以为页脚创建另一个菜单。或者,如果需要对标记进行更多控制,可以使用类别代码,该代码使用get\\u categories(),然后根据需要对它们进行排序。有关的详细信息get_categories().

下面是一个按名称排序的示例。

$categories = get_categories( array(
    \'orderby\' => \'name\',
    \'order\'   => \'ASC\'
) );
因此,整个代码块将如下所示。

$categories = get_categories( array(
    \'orderby\' => \'name\',
    \'order\'   => \'ASC\'
) );

foreach($categories as $category) {
  echo \'<a href="\' . get_category_link($category->term_id) . \'">\' . $category->name . \'</a>\';
}
Edit (Copy Main Navigation in Footer): 通过在页脚中添加此代码,可以将主导航复制到页脚。php。

<nav class="footer-navigation">
    <?php
        wp_nav_menu( array(
        \'theme_location\' => \'header-menu\',
        \'fallback_cb\' => \'false\',
        ) );
    ?>
</nav>

Edit 2 (Array of Nav Items):

您可以使用wp\\u get\\u nav\\u menu\\u items()构建自己的阵列。Docs here
Examples here