【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