web-dev-qa-db-ja.com

カテゴリー名で投稿を注文する

カテゴリ名で投稿を注文する方法はありますか?

私は試した

$args = array(
    'post_type' => 'dlm_download',
    'posts_per_page' => 10,
    'paged' => $paged,
    'order_by'=> 'cat', 
    'order' => 'ASC'
);

しかし、それは実際にはうまくいきません、誰かが私にヒントを与えてもらえますか?

2
user1512390

私はあなたと同じような闘いをしました、私が座って全体のことを再考してくれてありがとう、あなたが実際に必要なのはすべてのカテゴリーを選択し、それにカテゴリーIDを渡すことです。

あなたはdlm_downloadを使うので、あなたは以下をする必要があるでしょう、dlm_download_categoryから用語を得てください

$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:あなたがcustom postではなくpostsでそれを作りたいのなら

$cats = get_categories();より

引数に'cat'を渡します。

その明確さと願っています。乾杯

2
Levente Nagy

ここでの問題は、単一の投稿に複数のカテゴリを割り当てることができるということです。その場合、どのカテゴリからの注文が基づいていますか。

回避策の1つは、メタ値にカテゴリ名を格納するスクリプトを作成し、正しい順序を作成するためにorderby=meta_valueを使用することです。

0
Tyler Carter