質問: new WP_Query($args); ?> 全てをみる ``` 階層はこのようになっております↓ 北海道(親ターム) |_札幌市(子ターム)←子タームをクリックすると「札幌市」の一覧ページへリンク |_小樽市(子ターム) |_函館市(子ターム) 青森県(親ターム) |_八戸市(子ターム) |_弘前市(子ターム) |_青森市(子ターム) 秋田県(親ターム) |_秋田市(子ターム) |_横手市(子ターム) |_男鹿市(子ターム) ### 実現したいこと 上記の仕様に以下の仕様を追加したいと思っています。 1「全エリア」という親タームを作成し(必要であれば「全エリア」という子タームも作成)、このタームに属する記事はすべての検索結果ページに表示したい(上記階層図でいうところの札幌市~男鹿市の全9ページに9回表示されるとう意味です!)。 ➁下記の階層が表示されても構わない 全エリア(親ターム) |_全エリア(子ターム) wordpressは初心者で自身で考えてコードを書き起こすことが難しく、検索したコードも実際どの部分に適用したら良いかもわからず投稿させていただきました。 何卒よろしくお願いいたします! ### 試したこと 無知なりに子カテゴリ出力部分で`'terms' => array($target_cat_slug,'all')`などとしてみましたが何も変化はなく...(「all」が全エリアのスラッグだとしています) ### 補足情報(FW/ツールのバージョンなど) wordpressテーマは2017を使用しています。
回答: ついでにもうひとつ、 メインループ自体を改変して、「全てのエリア」の記事を”混ぜ込んで”表示する方法。 functions.php に pre_get_posts を使ってメインループに手を加えます。 ``` //functions.phpに記載 function pre_get_posts_custom( $query ) { if( is_admin() || ! $query->is_main_query() ){ return; } if( $query->is_tax( 'area' ) ){ $query->set( 'post_type', 'shop' );//カスタム投稿名 $taxquery = array( array( 'taxonomy' => 'area',//タクソノミー名 'field' => 'slug', 'terms' => array( 'all' ) //ターム名 ) ); $query->set( 'tax_query' , array('relation' => 'OR' ,$taxquery) ); } } add_action( 'pre_get_posts', 'pre_get_posts_custom' ); ``` taxonomy-area.php には、下記を記載 ``` ``` こちらの方がスマートかもしれない。