実現したいこと
WORDPRESSカスタムクエリーでタームが設定されてない記事を取得したい
前提
WORDPRESSでWP_Queryを使ってカスタム投稿の絞り込み検索を実装しています。
カスタムタクソノミーによる絞り込みで、タームを指定した場合は正しく該当する記事が取得できるのですが、タームを何も指定しない場合に、「タームを何も設定してない記事」が取得できません。
この場合タームの設定有無に関わらず全ての記事を取得したいのですが、「タームが1つ以上設定されている記事」しか取得できていません。
全ての記事を取得するためのtax_queryの書き方などについて教えていただきたいです。
該当のソースコード
PHP
1$cat = array();2$tax_query = array();3if (isset($_GET['s_category']) && is_array($_GET['s_category'])) {4 $cat = $_GET['s_category'];5}6if (!empty($cat)) {7 $tax_query = array(8 'taxonomy' => 'star_category',9 'terms' => $cat,10 'include_children' => false,11 'field' => 'term_id',12 'operator' => 'IN'13 );14}15 16$query_args = array(17 'post_type' => $_GET['post_type'],18 'posts_per_page' => intval(get_option('posts_per_page')),19 'paged' => $paged,20 's' => $_GET['s'],21);22if (!empty($tax_query)) {23 $query_args['tax_query'] = array($tax_query);24}25$the_query = new WP_Query($query_args);26
試したこと
いろいろググって、'term_id'にすべてのタームをセットして'operator' => 'NOT IN'に設定したり、'operator' => 'NOT EXISTS'を設定するとよいという記事を発見したのですが、これでもやはり「タームが何も設定されてない記事」はヒットしませんでした。
補足情報(FW/ツールのバージョンなど)
WORDPRESS v6.1.1
0 コメント