質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

746閲覧

taxonomy-カスタム分類.phpページに絞り込み検索を実装したい

iambeginnerr

総合スコア12

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/09/07 06:30

前提・実現したいこと

wordpressで地域ポータルサイトを制作中です。
店舗個別ページはカスタム投稿で作成しました。この店舗個別ページを検索したく、以下の仕様で検索システムを実装しようとしているのですが・・・

カスタム投稿:restaurant
カスタム分類1:area_cat(エリア指定は2階層 都道府県-市区町村)
カスタム分類2:genre_cat(ジャンル指定は2階層 親カテゴリ-子カテゴリ)

ページ遷移
1、トップページにて、都道府県(例:東京都)を選択
2、東京都の飲食店一覧が表示される(テンプレート:taxonomy-area_cat.phpを使用)、このページに市区町村とジャンルで絞り込むエリアを作成したい(東京都以下の市区町村×ジャンルでの絞り込み、例:中央区×和食など)。
3、「中央区×和食」で絞り込んだ記事一覧が表示される

上記のような流れで検索結果ページまでたどり着きたいのですが、「2」のエリア部分で、表示中カスタム分類の2階層目(東京都以下の市町村)から表示させる方法がわかりませんでした。

以下のコードで、全親子エリアを表示して検索することはできました。tax_query?を使用した方が良いとの記事を見つけましたが、具体的のどのように実装したら良いか分からず質問いたしました。
wordpressの大まかな知識はありますが、phpコードの記述については全くの初心者です。
皆様のヒントや知恵をお貸しください!よろしくお願いします。

試したこと

<form method="get" action="<?php echo home_url(); ?>"> <h3>エリア</h3> <?php   $terms = get_terms( 'area_cat' ); ?> <?php if( $terms ): ?> <ul class="terms"> <?php foreach( $terms as $term ): ?> <li> <input type="radio" name="area_cat" value="<?php echo esc_attr( $term->slug ); ?>"> <?php echo esc_html( $term->name ); ?> </li> <?php endforeach; ?> </ul> <?php endif; ?> <h3>ジャンル</h3> <?php $terms = get_terms( 'genre_cat' ); ?> <?php if( $terms ): ?> <ul class="terms"> <?php foreach( $terms as $term ): ?> <li> <input type="radio" name="genre_cat" value="<?php echo esc_attr( $term->slug ); ?>"> <?php echo esc_html( $term->name ); ?> </li> <?php endforeach; ?> </ul> <?php endif; ?> <input type="submit" value="検索"> </form>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

現在表示しているタームのIDを取得することで絞り込めました!
ありがとうございました。

<form method="get" action="<?php echo home_url(); ?>"> <h3>エリア</h3> <?php $taxonomy_name = 'area_cat'; $term_id = get_queried_object_id(); //現在表示しているタームのIDを取得 $termchildren = get_term_children( $term_id, $taxonomy_name ); foreach ( $termchildren as $child ) :?> <?php $term = get_term_by( 'id', $child, $taxonomy_name );?> <ul class="terms"> <li><input type="radio" name="area_cat" value="<?php echo $term->slug; ?>"><?php echo $term->name; ?></li> <?php endforeach; ?> </ul>

投稿2020/09/09 05:01

iambeginnerr

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

URLに複数のタクソノミーとパラメータを指定して絞り込みをすることは出来ます。
example.com/restaurant?area_cat=tokyo_chuo&genre_cat=jpfood

投稿2020/09/07 14:40

yuki84web

総合スコア1857

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

iambeginnerr

2020/09/09 04:55

回答いただきありがとうございます! 教えていただいた内容とは別の方法で表示することができました。 回答いただいた内容は別の機会に参考にさせていただきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問