前提・実現したいこと
wordpressで地域ポータルサイトを制作中です。
店舗個別ページはカスタム投稿で作成しました。この店舗個別ページを検索したく、以下の仕様で検索システムを実装しようとしているのですが・・・
カスタム投稿:restaurant
カスタム分類1:area_cat(エリア指定は2階層 都道府県-市区町村)
カスタム分類2:genre_cat(ジャンル指定は2階層 親カテゴリ-子カテゴリ)
カスタム分類1に属するターム:allarea(全国を指定する際に使用、都道府県と同階層)
ページ遷移
1、トップページにて、都道府県(例:東京都)を選択
2、東京都の飲食店一覧が表示される(テンプレート:taxonomy-area_cat.phpを使用)、このページに市区町村とジャンルで絞り込むエリアを設置(東京都以下の市区町村×ジャンルでの絞り込み、例:中央区×和食など)。
3、「中央区×和食」で絞り込んだ記事一覧が表示される
上記のような流れで検索結果ページまでたどり着くことができました。新たに「2」の部分に以下の機能を追加したいのですが、「b」に関してどのように実装して良いのかが分からず質問せせていただきました。
追加したい機能
a、親タームに「全国」というタームを追加し、投稿時このタームにチェックを入れた飲食店は、全ての検索結果ページに表示される(例:「全国」にチェックを入れた「和食処A」は、「中央区×和食」にも「札幌市×和食」にも表示される)→下記のコードで実装できました
<ul> <?php $args = array( 'posts_per_page' => -1, 'post_type' => 'restaurant',//カスタム投稿名 'tax_query' => array( array( 'taxonomy' => 'area_cat',//タクソノミー名 'field' => 'slug', 'terms' => 'allarea' //ターム名(スラッグ) ) ) ); $myposts = get_posts( $args ); foreach ( $myposts as $post ) : setup_postdata( $post ); ?> <li class="all-area"> <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <?php the_excerpt();?> </li> <?php endforeach; wp_reset_postdata();?>
b、エリア指定は「都道府県-市区町村」の2階層 ですが、投稿時、親タームである都道府県のみにチェックが入った飲食店は、全ての市区町村検索結果一覧ページに表示をしたい(例:「北海道」のみにチェックを入れた「和食処B」は、「札幌市×和食」にも「函館市×和食」にも表示される)→こちらの実装方法がわかりません。
「a」で使用したコードの'terms' => 'allarea' //ターム名(スラッグ)
部分で現在表示されているarea_catの親タームを取得できればいいのか?と考えたのですが、記述の仕方がわかりませんでした。
私の考え以外にも、「条件分岐の方が良い」などの案がや具体的な記述方法がありましたら教えていただきたいです!
wordpressの大まかな知識はありますが、phpコードの記述については全くの初心者です。
皆様のヒントや知恵をお貸しください!よろしくお願いします。
あなたの回答
tips
プレビュー