【wordpress検索機能カスタマイズ】カスタム投稿タイプ・ユーザー情報を検索可能に!

こんにちは、ゾノ( @ozonosho )です。
昨日は僕が運営する無料相談サイト『ココトモ』の検索機能をカスタマイズしてメッチャ便利にしました。
具体的には、検索結果ページにブログのみならずカスタム投稿タイプやユーザー情報を抽出できるようにしました。
実際の実装画面

できればぜひ実際に『ココトモ』のサイトを開いて利用してみてください。
たとえばこの検索窓に「不登校」と入力して検索すると、(ココトモは相談サイトのため)キーワードにピッタリの相談相手や情報が見つかるようになっています。
検索結果
(相談メンバー)

(トピック)

このように、「相談メンバー」のタブには不登校に関連する相談メンバーが表示され、「トピック」のタブには不登校に関連する掲示板トピックが表示されます。
作った背景
ココトモはメンバー数も多く、ブログやトピックの数は数千もあるため、利用者さんからすると「情報が多くて嬉しい反面、自分に合った情報を探すのが大変」という問題がありました。
とはいえwordpressのデフォルトの検索機能では固定ページまたはブログの検索しかできないため、今回検索機能をカスタマイズしました。
search.phpをごにょごにょ
ココトモの場合は「トピック=カスタム投稿タイプ」「相談メンバー=ユーザー(+カスタムフィールド)」を利用して作られているため、検索対象にそのへんの情報も含まれるようにしました。
ユーザー情報はカスタムフィールドで拡張した項目を検索対象に含めたかったため、search.php内で検索対象となるユーザーのIDを格納する配列を作ってから表示しています。
//ユーザー情報のマスター取得
$userlist = get_users(array('who' => 'authors'));
$users = '';
foreach ($userlist as $user) {
	if(strpos($user->user_profile, $s) !== false) {
		$users[] = $user->ID;	
		continue;
	}
	if(strpos($user->user_soudan_key, $s) !== false) {
		$users[] = $user->ID;	
		continue;
	}
}
user_profileとかuser_soudan_keyがカスタムフィールドの値です。ユーザーに紐づけたカスタムフィールドはユーザーのオブジェクトデータから簡単に引き出せるのがありたいですね。
もし同じような機能を実装したい場合は、search.phpを↓に置いておくので参考にしてみてください。
[wpdm_package id=’1921′]
それでも分からなければ、web制作をご依頼くださいw

			



					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					


