wordPressでクエリパラメータからカテゴリIDを取得しての検索機能を実装したい

実現したいこと

wordPressでカスタムタクソノミーを使用したカテゴリ検索機能を実装したい。

発生している問題・分からないこと

URLに
http://localhost/wp-demo/news?news_cat=11
というような形で入力されている
11はカテゴリID、news_catはカスタムタクソノミー名
実現したいことは、上記のURLの時はカテゴリID「11」に紐づく投稿しか表示されないようにしたい
現状は、上記URLにアクセスしても検索結果は0件しか表示されない

該当のソースコード

PHP

1function filter_news_by_cat_query( $query ) {2 // 管理画面のクエリやメインクエリでない場合は除外3 if ( !is_admin() && $query->is_main_query() && $query->is_post_type_archive('news')) {4 5 if ( isset($_GET['news_cat']) && !empty($_GET['news_cat']) ) {6 $cat = array($_GET['news_cat']);7 8 $tax_query = array(9 array(10 'taxonomy' => 'news_cat',11 'field' => 'term_id',12 'terms' => $cat,13 'operator' => 'IN',14 ),15 );16 // タクソノミークエリを追加17 $query->set( 'tax_query', $tax_query );18 19 print_r($cat);20 }21 }22 }23 add_action( 'pre_get_posts', 'filter_news_by_cat_query' );

試したこと・調べたこと

上記の詳細・結果

自分で試したこと

print_r($cat);
で確認したところ、
Array ( [0] => 11 )
と表示されたので、クエリパラメータの取得はできているはずです。

なぜ検索結果が0件表示されてしまうのかが分からないです。。

補足

コメントを投稿

0 コメント