Order posts by category name

时间:2014-04-24 作者:user1512390

有没有办法按类别名称排序帖子?

我试过了

$args = array(
    \'post_type\' => \'dlm_download\',
    \'posts_per_page\' => 10,
    \'paged\' => $paged,
    \'order_by\'=> \'cat\', 
    \'order\' => \'ASC\'
);
但它并没有真正起作用,请有人给我一个提示好吗?

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

我和你一样也经历了同样的挣扎,谢谢我坐下来重新思考了整件事,你实际上需要的是选择所有类别,并将类别id传递给它。

由于使用dlm\\U下载,您需要执行以下操作,请从dlm\\U下载类别中获取术语

$cats = get_terms(\'dlm_download_category\');
通过类别和通道循环query_posts 在它里面

所以

foreach ($cats as $cat) 
{

$args = array(
\'post_type\' => \'dlm_download\',
\'dlm_download_category\' => $cat->slug,
);

query_posts($args);

if (have_posts()) : 
while (have_posts()) : the_post(); 
// your stuff here
endwhile;
endif; 
}
你来了

PS:如果你想用posts 不适用于custom post

$cats = get_categories();

并通过\'cat\' 在争论中。

希望它的清晰和帮助。干杯

SO网友:Tyler Carter

这里的问题是,您可以将多个类别分配给单个帖子。在这种情况下,订单基于哪个类别?

解决方法之一是创建一个将类别名称存储在元值中的脚本,并使用orderby=meta_value 创建正确的顺序。

结束

相关推荐

Order by optional meta key?

我正在为自定义帖子类型构建排序功能,并且我为“特色”帖子提供了一个自定义元值。勾选复选框时会设置该值,否则不会设置该值。使用默认值orderby=meta_value 具有meta_key=featured 使其仅在屏幕上显示具有meta键的帖子。如果没有,他们甚至不会出现。我希望这样,如果没有设置,它们确实会出现,但它们会最后出现。我想我需要使用meta_query 相反,但我也无法让它发挥作用。How do I allow empty, false, or non-existing meta keys