LoginSignup
jyujyuji
@jyujyuji

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

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

解決したいこと

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

該当するソースコード

    function filter_news_by_cat_query( $query ) {
        // 管理画面のクエリやメインクエリでない場合は除外
        if ( !is_admin() && $query->is_main_query() &&  $query->is_post_type_archive('news')) {

            if ( isset($_GET['news_cat']) && !empty($_GET['news_cat']) ) {
                $cat = array($_GET['news_cat']);

                $tax_query = array(
                    array(
                        'taxonomy' => 'news_cat',
                        'field'    => 'term_id',
                        'terms'    => $cat,
                        'operator' => 'IN',
                    ),
                );
                // タクソノミークエリを追加
                $query->set( 'tax_query', $tax_query );

                print_r($cat);
            }
        }
    }
    add_action( 'pre_get_posts', 'filter_news_by_cat_query' );

自分で試したこと

ここに問題・エラーに対して試したことを記載してください。

print_r($cat);

で確認したところ、

Array ( [0] => 11 )

と表示されたので、クエリパラメータの取得はできているはず

0

No Answers yet.

Your answer might help someone💌