GET_CATEGORIES上的用户定义顺序?

时间:2014-09-03 作者:Garrett

下面是一些将特定类别调用到我们的首页帖子循环的基本代码。它工作正常,只是我的客户希望类别按特定顺序显示。我知道互联网上还有其他关于这一点的帖子,但我没有看到任何像我的客户所问的那样解决这一问题的帖子。

我可以接受下面代码中创建的$categories变量,并将这些对象调用到一个新数组中吗?

在这种情况下,所有对象前面都有一个数字,如:

[0] => values
[1] => values
[2] => values
....
输出转储时。

我可以把输出结果按我想要的顺序调用它们吗?(例如:1,3,4,2,5,0)

Current code:

`
    wp_reset_postdata();        
    /* top stories end */           

     $args = array(

        \'child_of\'                 => 0,
        \'parent\'                   => \'\',
        \'hide_empty\'               => 1,
        \'hierarchical\'             => 1,
        \'orderby\'                  => \'id\',
        \'order\'                    => \'ASC\',
        \'include\'                  => \'12,13,14,15,16,1\',
    ); 

     $categories = get_categories( $args );
 ?>

<?php
    echo \'<div class="home-all-cat">\';
     foreach( $categories as $cat)
     {
        $slug = $cat->slug ;
        echo \'<div class="home-cat-item" >\'; 
        echo \'<span class="cat-title">\'.$cat->name.\'</span><span class="cat-archive-link"><a target="_blank" href="\'.get_category_link( $cat->cat_ID ).\'" title="\'.$cat->name.\'">Show all \'.$cat->name.\'</a></span>\';
        echo do_shortcode(\'[blog number_posts="6" cat_slug="\'.$slug.\'" exclude_cats="1" title="" thumbnail="" excerpt="" excerpt_words="20" meta_all="no" meta_author="" meta_categories="" meta_comments="" meta_date="" meta_link="" paging="" scrolling="" strip_html="" blog_grid_columns="" layout="medium"][/blog]\');
        echo \'</div>\';

     }
     echo \'<div class="clear">\';
     echo \'</div>\';
 ?>
`

2 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

我认为最明智也是最简单的方法是取消设置返回数组中的第一个值,然后在foreach

为此,您需要按ID对类别进行排序,因为您需要将类别ID 1添加到后面。像这样的东西会有用的

<?php
$args = array(
    \'hierarchical\'             => 1,
    \'orderby\'                  => \'id\',
    \'order\'                    => \'ASC\',
    \'include\'                  => \'13,21,41,1\',
); 

$categories = get_categories( $args );

$v = $categories[0];
    unset($categories[0]);
    $categories[0] = $v;


foreach( $categories as $cat) {
    echo $cat->slug ;
}
?>

SO网友:aifrim

以下是一个解决方法:

创建名为Category menu的菜单

register_nav_menu( \'category-menu\', "Category Menu );
现在,您的客户可以根据自己的喜好配置菜单。你所要做的就是把代码粘贴到你想显示的地方

wp_nav_menu(\'category-menu\');

结束