ワードプレス便利帳

WordPressの使い方を初心者から上級者までわかりやすく画像で解説

© ワードプレス便利帳 All rights reserved.

a

201710/24

プラグインを使わない絞り込み機能【未選択時はすべて表示したい】

WordPressの検索機能について

チェックボックスに1つもチェックをいれなかったら
絞り込まずに全部表示。

「絞り込みの入力がなければその項目はすべて表示する」という扱いにする。

①まずは絞り込みフォームを作成します。

searchform.phpを作成し、検索フォームを書きます。
今回は「fruits」というタクソノミーから絞り込みたいと思います。


いたって普通のフォームです。

で表示させたい箇所に読み込ませてください。

②検索結果を表示

search.phpに記述します。



'fruits','terms'=>$s_fruits,'field'=>'slug','operator'=>'IN');}; query_posts( array( 'paged' => $paged , 'posts_per_page' => 12, 'post_type' =>'post', 's' => $s, 'tax_query' => array( $fruit_selected, 'relation' => 'AND' ) ) ); ?>

■!empty($s_fruits) 

「$s_fruits」が空ではないとき=何かが選択されているときは、選択されている項目で絞り込みます。
ここでは、タクソノミーの条件ごと「$fruit_selected」にまとめて後で挿入します。(重要)
=空のとき(何も選択されていないとき)は $s_fruits は空のまま。

■query_posts( array(…

絞り込み条件をquery_postsで定義します。
先ほどの「$fruit_selected」を呼び出します。
1つ以上チェックがあった場合、「$fruit_selected」内の条件。
1つも選択されていない場合は「$fruit_selected」は空なので
「tax_query」へタクソノミーの指定はないということになります。

/* 間違い */
$s_fruits = $_GET['s_fruits'];
query_posts( array(
	'paged' => $paged ,
	'posts_per_page' => 12,
	'post_type' =>'post',
	's' => $s,
	'tax_query' => array( 
		array(
			'taxonomy'=>'fruits',
			'terms'=>$s_fruits,
			'field'=>'slug',
			'operator'=>'IN'
		),
		'relation' => 'AND'
		)
	)
);

としてしまうと、何も選択されていないとき
タクソノミーの指定はしてあるのに、
「$s_fruits」に何も入っていないので
「fruitsのなかの’’」と一致。
=どの記事も引っかからないとなります。

重要なのは
絞り込み項目があるときは絞り込み内容を表示。
絞り込まれていないときは、そもそもタクソノミーすら指定しないという点でした。

1日うんうんうなってこうなったので
もっとスムーズな方法があればよろしくお願いします。

③何やらエラーができるとき

Warning: urlencode() expects parameter 1 to be string, array given in /home/xxx/wp-includes/formatting.php on line 4769

上記のようなエラーがでるときは、
検索フォーム内のname=”sample[]”のsampleの部分を変えたら動くことがあります。
おそらく何かと重複しちゃったのだと思います。

あとは、稼働中のサイトのソースの
変数名をこの場で変更したので、変数が一致しているかの確認をお願いします!

  • このエントリーをはてなブックマークに追加

関連記事

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

av

Welcartのカテゴリー管理・新規登録ページをカスタマイズする

ECサイトをWordpressで運用するときに使われる『Welcart』というプラグイン。 私はこのプラグインが使いにくくて仕方がないです…

gsvgadvg

20172/17

カスタムフィールドでカレンダーを自作【プラグインいらず】

カスタムフィールドだけでカレンダーを自作 プラグイン不要というのはカレンダープラグインを使わずという意味であってカスタムフィールド系のプラ…

20161102200516

201611/2

ループの中に罫線を追加する方法

ループ出力の中に区切り線を追加する ブログや製品・商品情報として、1行ごとに罫線を追加したい、というデザインもあると思います。 しかしル…

20161017154512

201610/17

『WordPress importer』と『Search Regex』を使って画像ごと記事の引越しを行う

『WordPress importer』について WordPressからWordPressへ投稿記事の引越しに関して、WordPressは…

bsfvgs1s

201610/6

WordPressの記事・固定ページを親ごとに出力する。

投稿・カスタム投稿・固定ページのループ出力について WordPressではquery_postsやWP_Queryなどのループを使うとペー…

ページ上部へ戻る