私がやろうとしていること
こんにちは、私のサイトにprojects
というカスタム投稿タイプがあります。次に、projects
投稿タイプに対して_project_catagories
_というカスタム分類を作成しました。プロジェクトアーカイブページ(すべてのプロジェクトが表示されます)に、カテゴリ別の参照というセクションがあり、ユーザーがカテゴリ名をクリックすると、そのカテゴリの下のプロジェクトが表示されます。
ここで、クリックしたカテゴリの下のプロジェクトを表示するために、各プロジェクトカテゴリプロジェクトを示す_taxonomy-project_catagories.php
_というテンプレートファイルを作成しました。次に、そのファイル内で、最初にget_term_by()
を使用して、次のようにそのページの_term_id
_を取得します。
_$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
_
次に、その_term_id
_をWP_Query()
に渡して、次のように、そのカテゴリの下にあるプロジェクトのリストを取得します。
_$args = array(
'numberposts' => -1,
'post_type' => 'projects',
'tax_query' => array (
'taxonomy' => 'project_catagories',
'field' => 'term_id',
'terms' => $term->term_id
)
);
$the_project_cat_query = new WP_Query($args);
_
次に、最後にループしてプロジェクトを表示します。
問題:
ここで問題は、_term_id
_がWP_Query()
に渡されているかどうかに関係なく、すべてのカテゴリのすべてのプロジェクトが表示されていることです。私はこのフォーラムとスタックオーバーフローに同様の質問がたくさんあることを知っています。それらすべてをチェックしましたが、助けにはなりませんでした。私は_WP_Quey
_のドキュメントをチェックしても、何が起こっているのか理解できませんでした。だから、どんな助けも本当に役立つでしょう。
テスト方法
私は1つのプロジェクトカテゴリの下に1つのプロジェクトを作成したので、技術的にはそのプロジェクトカテゴリページにある場合、プロジェクトの詳細を表示するだけで、他のページについては、そのプロジェクトカテゴリの下にカテゴリがないため空白になります。
IIは手動で_term_id
_を入力し、field
値をslug
にチェックしてから、手動でスラッグを入力することも試みました。すべての場合でまったく同じ結果になります。
どんな反応も本当に役に立ちます。
分類パラメータ
重要な注意:
tax_query
は、税金クエリ引数arraysのarrayを取ります(それは配列の配列)。この構成では、最初の(外部)配列の関係パラメーターを使用して複数の分類法を照会し、分類法配列間のブール関係を記述できます。
'tax_query'
配列の配列を追加する必要があります( Codexを参照 ):
'tax_query' => array (
array(
'taxonomy' => 'project_catagories',
'field' => 'term_id',
'terms' => $term->term_id
)
)