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

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

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

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

PHP

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

Q&A

解決済

1回答

5264閲覧

WordPress チェックボックスだけでカスタムフィールドのデータを絞り込みしたい

lingwood

総合スコア40

WordPress

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

PHP

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

0グッド

2クリップ

投稿2017/03/09 07:43

編集2017/03/09 09:19

お世話になります。
ご教授いただけますよう、何卒よろしくお願い申し上げます。

###実現したいこと
WordPressでサイトを構築しています。
高度なことをするものではありませんが、
チェックボックスによる『検索(絞り込み)機能』をつけて
欲しいと言われています。

例として社員一覧を作るみたいな感じで、

  1. エリア(関東、関西、東海など)
  2. タイプ(正社員、契約、バイト)

といったようにエリアとタイプをそれぞれ選び、

関東&正社員にチェック =関東の正社員を表示する
正社員にチェック =正社員だけが表示される
関東&関西&東海&バイト=関東、関西、東海のバイトが表示される

という結果を返してくれるようにしたいと思っています。

現在のテンプレート構成として当該部分を構成するものは以下の通りになっています。

list.php ← 一覧ページを形成:ここにチェックボックス検索を入れたい
search-lists.php ← チェックボックスで検索したら結果が表示される

※list.phpとsearch-lists.phpのデザインを同じにしたいため
こうしています。

single-lists.php ← 詳細ページが表示される

###現況・試したこと
現在の状態として、カスタムフィールドテンプレートでラジオボタンを作り
・エリア
・タイプ
のどれかひとつを選ぶ形になっています。

前項に対して、今までに試したことですが、主に以下のサイトさんの
記事を参考にしました。

http://kotori-blog.com/wordpress/refinement_search/
http://www.webopixel.net/wordpress/584.html
http://turezurenaru.blog.jp/archives/31060521.html
https://magnets.jp/web_design/cms-web_design/3124/

###該当のソースコード

上記サイトを参考にして以下のコードをそれぞれのテンプレートに
記載しました。

■list.php

<form method="get" id="searchform" action="<?php bloginfo('url'); ?>/list/"> <input type="hidden" name="s" id="s" placeholder="検索" /> <div>カスタムフィールド</div> <label><input type="checkbox" name="request[]" value="関東">関東</label><br> <label><input type="checkbox" name="request[]" value="東海">東海</label><br> <label><input type="checkbox" name="request[]" value="関西">関西</label><br> <label><input type="checkbox" name="request[]" value="正社員">正社員</label> <label><input type="checkbox" name="request[]" value="契約">契約</label> <label><input type="checkbox" name="request[]" value="バイト">バイト</label> <input type="submit" value="検索" /> </form>

■search-lists.php

<?php $s = $_GET['s']; $request = $_GET['request']; //meta_query用 if($request){ foreach($request as $val){ $metaquerysp[] = array( 'key'=>'request', 'value'=> $val, ); } } $metaquerysp['relation'] = 'AND'; ?> <div>検索条件</div> <?php if($s){ ?>検索キーワード:<?php echo $s; ?><br><?php } ?> <?php if (is_array($request)) { ?>カスタムフィールド:<?php if (is_array($request)) { foreach($request as $val){ if ($val === end($request)) { echo $val; }else{ echo $val.", "; } } } } ?> <div>検索結果</div> <?php query_posts( array( 'meta_query' => $metaquerysp, 's' => $s, ) ); ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <!-- ※※ここをデザインする --> <div><?php the_title(); ?></div> <div><?php the_content(); ?></div> <?php endwhile; else : ?> <div>該当なし</div> <?php endif; wp_reset_query(); ?>

###発生している問題
結果を表示するsearch-lists.phpは読み込んでいるのですが、
検索結果が「該当なし」など思うように表示されません。

検索を押した際のURLですが、以下の通りになります。

http://URL/wp-demo/list?s=&request%5B%5D=関東&request%5B%5D=正社員

ここを手動でs=関東とすると結果的に関東のものが出力されますが、
s=正社員とすると正社員は表示されない状態です。

何が悪いのかさっぱりわからず途方にくれております。

悪い箇所のご指摘等いただけましたら幸いです。
またできましたら解決策も一緒にご教示頂けましたら
本当に助かります。

お手数ですが、何卒よろしくお願い申し上げます。

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

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

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

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

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

guest

回答1

0

自己解決

list.php
カスタム投稿タイプの中を検索するようにフォームパラメーターを変更。

search-list.php
ifをlist.phpで設定したカスタムフィールドから受けるパラメータに
変更することで解決できました。
お騒がせいたしました。

またの際にはよろしくお願いします。

投稿2017/03/10 09:36

lingwood

総合スコア40

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問