Category specific order

时间:2014-10-14 作者:stargatesg1

我试图弄清楚如何按特定顺序显示类别。假设我的类别ID的顺序如下:1,3,4,2,5

我想按该顺序显示类别。以下是迄今为止我拥有的代码,但它不起作用:

$args = array(
    \'type\'                     => \'post\',
    \'child_of\'                 => 0,
    \'parent\'                   => \'\',
    \'orderby\'                  => \'front_order_id\',
    \'order\'                    => \'ASC\',
    \'hide_empty\'               => 0,
    \'hierarchical\'             => 1,
    \'exclude\'                  => 1,
    \'include\'                  => \'1,3,4,2,5\',
    \'number\'                   => \'\',
    \'taxonomy\'                 => \'category\',
    \'pad_counts\'               => false
);
$categories = get_categories($args);

2 个回复
SO网友:Pieter Goosen

EDIT

我真的不知道Wordpress中有什么解决方案可以按照您需要的方式进行排序。我认为最好的方法是使用php排序,根据需要对返回的数组进行排序

以下是如何:像往常一样获取类别信息数组

$categories = get_categories($args);
$categories 将保存从数据库返回的五个类别的数组

现在需要创建一个具有所需排序顺序的数组

$keys = [1,3,4,2,5];
您现在要合并$keys$categories 具有array_combine. 我们将使用Skeys 新组合阵列的密钥

$categories_rearranged = array_combine( $keys, $categories );
在此阶段,数组不会自然排序,因此使用ksort, 对数组进行排序,使其自然排序

ksort($categories_rearranged);
  • $categories_rearranged 现在将是您将使用的数组,并将传递给foreach

    foreach ( $categories_rearranged as $category ) {
       echo $category->name;
    }
    
  • ORIGINAL ANSWER

    抄本会帮助你的。看看get_categories() 尤其是以下参数

    orderby

    (字符串)按字母顺序或按唯一类别ID对类别进行排序。默认值为按名称排序。有效值:

    id

  • 名称-默认

    弹头

    计数

    术语组

  • 您可以看到您正在向orderby

    这个includeexclude 参数也不能一起使用

    SO网友:bysanchy

    你能展示一下你得到了什么吗?

    如果你什么都没有得到,这可能就是为什么:

    \'child_of\' => 0
    
    还有,这是什么?

    \'orderby\' => \'front_order_id\',
    
    此外,这不会改变顺序:

    \'include\' => \'1,3,4,2,5\',
    
    看看这个http://codex.wordpress.org/Function_Reference/get_categories

    结束

    相关推荐

    Show Pages in Categories

    通过将此代码添加到函数中,我创建了category函数。php:function page_category() { register_taxonomy_for_object_type(\'category\', \'page\'); } // Add to the admin_init hook of your theme functions.php file add_action( \'init\', \'page_category\' ); 但问