Skip to content

Categories:

カスタム投稿とカスタム分類で絞り込み検索

少し躓いたのでメモ。

カスタム投稿とカスタム分類を使った場合の絞り込み検索の方法。
良く検証していないので、どこかで何かあるかもしれないけど。。。

今回のやりたかった事

カスタムポストを作り、タクソノミー(ターム)でカテゴリ分け。
各投稿にはカスタムフィールドを持ち、検索の際には

1.カテゴリで絞り込み
2.キーワード(カスタムフィールドのデータ含み)

ができるようにする。

とまぁ要はカテゴリで絞り込み検索なわけなんですが
これがカスタム分類を使っているとどーもうまくいかない。
というか、検索してもあまり情報が無い。

カスタム投稿に関する情報は結構あるのに、タクソノミーとタームに関してはあまり情報が無い…

当初はWP Custom Fields Search

という絞り込み用検索プラグインで簡単にできるかな~とか思っていたのですが、どうやらこのプラグインだいぶ前に更新が止まっているようで
タクソノミーに対応していない。

コチラのエントリーでそれらしい事をしているようですが、自分には出来ませんでした。
カスタム投稿をプラグインで設定しているから紐付けがうまく入ってないのでしょうか…???

Taxonomy Picker

上記のプラグインでかなり近い事が出来たのですが
タームを指定していない状態でキーワードを入れて検索すると、全記事(通常のpostも)含めて検索されてしまう
という部分で実現出来ませんでした。

出来ないのか!!と諦めかけたんですが
検索時のURLのパラメーターを直打ちで

http ://xxxx/wp/?s=キーワード&post_type=ポストタイプスラッグ&video-cat=タームスラッグ

と打ち込むとその条件で記事が出る!でもやり方がわかんねぇ!
そんなこんなで色々引用し、四苦八苦しながら作成したのが下記ソース。


<form role="search" method="get" id="searchform" action="<?php echo home_url( '/' ); ?>">

<p>・キーワード入力<br /><input type="text" name="s"  id="s"></p>

	<!--1.投稿タイプをvalueに指定↓-->
<p>・カテゴリー選択<br /><input type="hidden" name="ポストタイプ名" value="manege" />

		<!--2.nameにはカスタム分類名↓-->
		<select id="cat" class="postform" name="タクソノミー名">
		<option class="level-0" value="">全て</option>

		<!--3.get_termsでカスタム分類情報を取得 optionに書き出す↓-->
		<?php
		$home = site_url('/');
		$tname = get_terms( 'manege-cat', 'order=ASC' );
		    foreach ( $tname as $term ) {
		    echo '<option class="level-0" value="'. $term->slug .'">'. esc_html($term->name) .'</option>';
		     }
		?>

		</select></p>

<input type="submit" id="searchsubmit" value="検索する" />
</form>

使用しているプラグインは

・Custom Post Type UI (カスタムポスト&タクソノミーの設定)
・Advanced Custom Fields (カスタムフィールドの設定)
・Custom Post Type Permalinks (カスタムポストのパーマリンク設定)
・Custom Post Type Category Pagination Fix (ページングのバグ回避)
・Search Everything (検索範囲拡張)

1.まず、hiddenでポストタイプを設定。
2.selectのnameをタクソノミー名に
3.get_termsで指定したタクソノミーのタームスラッグを取得。valueにスラッグを設定

これでタクソノミーでの絞り込みが出来ます(できてるはずできてるはずできてるは

出来て忘れてない内に!と書いたので、確認が十分出来ていませんが、検索結果のテンプレートの方を
ポストタイプ別に色々指定すればいいのでは無いだろかと思っています。

お客に使わせる際に、カスタムポストはすごく簡単になるのでその辺はすごく良いのですが…
この辺の仕様がまだフンワリとしているので、なかなか難しいですね。。。

Posted in web.


0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.

*