WORDPRESSカスタムクエリーでタームが設定されてない記事を取得したい

実現したいこと

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 コメント