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

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

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

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

PHP

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

Q&A

解決済

1回答

720閲覧

Search & Filterで、複数のカスタムタクソノミーの絞り込み検索フォーム(カテゴリー検索)を作ってますが、検索ワードを出力させたい

yukki-1227

総合スコア52

WordPress

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

PHP

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

0グッド

0クリップ

投稿2023/02/07 07:29

編集2023/02/08 02:56

実現したいこと

イメージ説明

  • 検索結果(taxonomy.phpに反映されてます)に何のカテゴリで検索したのか表示させたいです。

「」⇐この中に表示させるのが理想です。
どうすればいいのかご教示お願い致します。

前提

現在wordpressにてsearchandfilterを使ってカスタム投稿タイプmemberのcustomタクソノミーのスラッグ名:gyousyu(業種)とスラッグ名:area(地域)という二種類のタクソノミーの検索フォームを作っています。
絞り込みは上手くいっていてtaxonomy.phpに結果が反映されています。

発生している問題

何のgyousyu(業種)とarea(地域)で検索したのか表示させることができません。
(formのsearchandfilterのinputにvalue=”<?php the_search_query(); ?>”なんてないので、taxonomy.phpの検索結果に表示されないということは分かっています。)

該当のソースコード

searchandfilter

1[searchandfilter fields="serch,gyousyu,area" post_types="member" submit_label="検索する" empty_search_url="https://onebitious.net/no_results/" ]

taxonomy.php(検索結果はここに表示されます)

1<?php get_header(); ?> 2<?php echo do_shortcode('[elementor-template id="4160"]'); ?> 3<?php echo do_shortcode('[breadcode] 4 '); ?> 5 6<?php if( have_posts() ): ?> 7 8<div class="search_width_all"> 9 <div class="search_top_margin"> 10 <h2 class="search_title">「<?php the_search_query(); ?>」の検索結果</h2> 11 </div> 12 <?php while( have_posts() ): the_post(); ?> 13 14 <div class="search_a_margin"> 15 <ul class="search_ul_name"> 16 <li class="search_li_name"> 17 <a href="<?php the_permalink(); ?>" target="_blank" rel=“noopener”><?php the_title(); ?></a> 18 </li> 19 </ul> 20 </div> 21 22 <?php endwhile; ?> 23 24 <div class="search_under_margin"> 25 </div> 26</div> 27 28<!-- 検索ワードがヒットしないとき --> 29 30<?php else: ?> 31 <div class="search_none_margin"> 32  <p class="search_p_result">検索結果はありませんでした。</p> 33 <p class="search_p_result">再度サイト内検索、または下部リンクより目的のページをお探しください。</p> 34 </div> 35<?php endif; ?> 36<script> 37 38 jQuery(function() { 39 40  jQuery('#pan li:nth-child(2)').text('会員プロフィールのカテゴリー検索'); 41 42}); 43</script> 44 45<?php get_footer(); ?>

試したこと

下記のように、get_query_varを使ってタクソノミーごとの情報を取得してタームを表示させようとすると、ページが真っ白になったりして上手くいきません。

taxonomy.php

1<!-- 開いているページの情報を取得 --> 2 <div class="main1-hantei"> 3 <?php 4 $gyousyu_slug=get_query_var('gyousyu'); 5 $gyousyu=get_term_by('slug',$gyousyu_slug,'gyousyu'); 6 7 ?> 8<h2 class="title title-jp"><span class="gyousyu_Category_a">業種:</span><br><span class="gyousyu_Category_q"><?php echo $gyousyu->name; ?></span></h2>

補足情報(FW/ツールのバージョンなど)

WordPress:現在のバージョン: 6.1.1

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

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

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

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

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

guest

回答1

0

自己解決

このようにすればget_query_varが打ち消されずにカテゴリ反映ができました。
get_query_varでカテゴリの情報を取得し、jQueryのtextメソッドで表示させています。
下にheaderやfooterやget_query_varの方で作ったカテゴリ検索も表示されてますがこれはdisplay:noneなどで消そうと思います。

taxonomy.php

1<?php get_header(); ?> 2<?php echo do_shortcode('[elementor-template id="4160"]'); ?> 3<?php echo do_shortcode('[breadcode] 4 '); ?> 5 6<?php if( have_posts() ): ?> 7 8<div class="search_width_all"> 9 <div class="search_top_margin"> 10 <h2 class="search_title">「<?php the_search_query(); ?>」検索結果</h2> 11 <h2 class="gyousyu_hyouji_title"><span class="gyousyu_hyouji_title_span"></span></h2> 12 <h2 class="area_hyouji_title"><span class="area_hyouji_title_span"></span></h2> 13 <p>上記のカテゴリで絞り込んでいます。</p> 14 </div> 15 <?php while( have_posts() ): the_post(); ?> 16 17 <div class="search_a_margin"> 18 <ul class="search_ul_name"> 19 <li class="search_li_name"> 20 <a href="<?php the_permalink(); ?>" target="_blank" rel=“noopener”><?php the_title(); ?></a> 21 </li> 22 </ul> 23 </div> 24 25 <?php endwhile; ?> 26 27 <div class="search_under_margin"> 28 </div> 29</div> 30 31<!-- 検索ワードがヒットしないとき --> 32 33<?php else: ?> 34 <div class="search_none_margin"> 35  <p class="search_p_result">検索結果はありませんでした。</p> 36 <p class="search_p_result">再度サイト内検索、または下部リンクより目的のページをお探しください。</p> 37 </div> 38<?php endif; ?> 39<script> 40 41 jQuery(function() { 42 43  jQuery('#pan li:nth-child(2)').text('会員プロフィールのカテゴリー検索'); 44 45}); 46</script> 47 48<?php get_footer(); ?> 49<?php get_header(); ?> 50<?php echo do_shortcode('[elementor-template id="4160"]'); ?> 51<?php echo do_shortcode('[breadcode] 52 '); ?> 53 54<div class="taxonomy_background-color"> 55 56 <div class="custom-wrap"> 57 58<h2 class="pageTitle">カテゴリー検索結果<span></span></h2> 59<main class="main1"> 60 <!-- 開いているページの情報を取得 --> 61 <div class="main1-hantei"> 62 <?php 63 $gyousyu_slug=get_query_var('gyousyu'); 64 $gyousyu=get_term_by('slug',$gyousyu_slug,'gyousyu'); 65 if (empty($gyousyu_slug)) { 66 echo '$var1の中は空です。'; 67} 68else { 69 echo '$var1の中は空ではありません。'; 70} 71 72// if (empty($var2)) { 73// echo '$var2の中は空です。'; 74// } 75// else { 76// echo '$var2の中は空ではありません。'; 77// } 78 ?> 79 </div> 80 <script> 81 jQuery(function() { 82 var value2=jQuery('.pageTitle').text(); 83 console.log(value2); 84 var value=jQuery('.main1-hantei').text(); 85 var value3=(value.trim()); 86 console.log(value3); 87 if (value3 == '$var1の中は空です。') { 88 89 console.log('業種は空です'); 90 jQuery('.container1').addClass('dis-none'); 91 92 }else{ 93 console.log('違うよ!'); 94 } 95 96 97}); 98 99 100 101 102 </script> 103 <section class="sec1"> 104 <div class="container1"> 105 <div class="sec_header"> 106 <h2 class="title title-jp gyousyu-title"><span class="gyousyu_Category_a">業種:</span><br><span class="gyousyu_Category_q"><?php echo $gyousyu->name; ?></span></h2> 107 <span class="title title-en"><?php echo strtoupper($gyousyu->slug); ?></span> 108 109 </div> 110 <div class="row justify-content-center"> 111 <?php if(have_posts()): ?> 112 <?php while(have_posts()):the_post(); ?> 113 <div class="col-md-\3"> 114 <?php get_template_part('loop','member'); ?> 115 116 </div> 117 <?php endwhile; else: ?> 118 <p>記事がありません。</p> 119 <?php endif; ?> 120 121 </div> 122 </div> 123 </section> 124 <!-- 開いているページの情報を取得 --> 125 <div class="main2-hantei"> 126 <?php 127 $area_slug=get_query_var('area'); 128 $area=get_term_by('slug',$area_slug,'area'); 129 if (empty($area_slug)) { 130 echo '$var1の中は空です。'; 131} 132else { 133 echo '$var1の中は空ではありません。'; 134} 135 136// if (empty($var2)) { 137// echo '$var2の中は空です。'; 138// } 139// else { 140// echo '$var2の中は空ではありません。'; 141// } 142?> 143 </div> 144 145 <script> 146 jQuery(function() { 147// var value2=jQuery('.pageTitle').text(); 148// console.log(value2); 149 var value4=jQuery('.main2-hantei').text(); 150 var value5=(value4.trim()); 151 console.log(value5); 152 if (value5 == '$var1の中は空です。') { 153 154 console.log('地域は空です'); 155 jQuery('.container2').addClass('dis-none'); 156 157 }else{ 158 console.log('違うよ!'); 159 } 160 161 162}); 163 164 165 166 167 </script> 168 169 <section class="sec2"> 170 <div class="container2"> 171 <div class="sec_header"> 172 <h2 class="title title-jp area-title"><span class="gyousyu_Category_a">地域:</span><br><span class="gyousyu_Category_q"><?php echo $area->name; ?></span></h2> 173 <span class="title title-en"><?php echo strtoupper($area->slug); ?></span> 174 175 </div> 176 <div class="row justify-content-center"> 177 <?php if(have_posts()): ?> 178 <?php while(have_posts()):the_post(); ?> 179 180 <div class="col-md-\3"> 181 <?php get_template_part('loop','member'); ?> 182 183 </div> 184 185 <?php endwhile; else: ?> 186 <p>記事がありません。</p> 187 <?php endif; ?> 188 189 </div> 190 </div> 191 </section> 192</main> 193 </div> 194</div> 195<script> 196 jQuery(function() { 197// var value2=jQuery('.pageTitle').text(); 198// console.log(value2); 199 var gyousyu_title=jQuery('.gyousyu-title').text(); 200 201 console.log(gyousyu_title); 202 jQuery('.gyousyu_hyouji_title_span').text(gyousyu_title); 203 204 var area_title=jQuery('.area-title').text(); 205 206 console.log(area_title); 207 jQuery('.area_hyouji_title_span').text(area_title); 208 209 210 211}); 212 213</script> 214 215<?php get_footer(); ?>

投稿2023/02/08 02:59

yukki-1227

総合スコア52

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問