web-dev-qa-db-ja.com

特定のカテゴリの特定のサブカテゴリの下に投稿を表示する方法

オンラインでの長い検索の後、私はこの問題の解決策を得ることを期待して私の問題をここに投稿することにしました。さて、私は様々なカテゴリ(小説、本、雑誌など)を持つカスタム投稿をしており、これらの各カテゴリには出版年に多くのサブカテゴリ(2002、2004、2005、2006など)があります。基本的に私が必要としているのは、選択されたカテゴリの関連サブカテゴリだけに基づいてフィルタリングメニューを表示することです。そして、ユーザーがサブカテゴリメニュー項目をクリックすると、彼はその特定のカテゴリの下のすべての投稿を取得することができます。

これは私がこれまでにやったことですが、私は与えられたカテゴリの中にサブカテゴリでどのようにフィルタ処理を見つけることができませんでした。

        if (isset($_GET['cat'])){
    $subcat = $_GET['cat'];
    query_posts( 'posts_per_page=10&paged='.$paged.'&post_type=publication&publication_category='.$maincat.**'&category__in='**.$subcat );
        }else{
    query_posts( 'posts_per_page=10&paged='.$paged.'&post_type=publication&publication_category='.$maincat );   
    }

私はこの問題を解決するために彼に少し時間を与えてくれた人にとても感謝しています。

1
Musta

これで十分です。

query_posts( 'posts_per_page=10&paged='.$paged.'&post_type=publication&publication_category='.$subcat );

元のコードを見ると、文字通り引数に何を求めているのかを見れば、なぜ自分が間違ったのかがわかります。

メインカテゴリにあるが子カテゴリにある投稿が欲しいのですが

欲しいのは

子カテゴリにある投稿が欲しいのですが

また、信頼性が高いため、必ず名前ではなく用語IDを使用してください。

また重要な重要事項の最後のメモ

あなたはcatと照合していますが、これは予約されたWordPress名であり、これまでしか保持されませんpublication_category IDではなく、カテゴリID。このGET変数を使用して何かを渡すと、Wordpressはそれに応じてカテゴリを想定してクエリを変更します。これは悪い知らせです。

そのため、使用する変数の名前を変更するか、コードが示唆している分類アーカイブを使用することができます。例えばexample.com/publication_category/maincategory/subcategory/そしてWordPressにこれらすべてをやらせてください。

2
Tom J Nowell