社内ポータルに検索を作る。増えた情報から必要なものを探せるようにする。

PROJECT 002 STEP 07 SEARCH|蓄積した情報を検索して見つける流れ

PROJECT 002 — 社内ポータルサイトをWordPressで作る。
STEP 07 / SEARCH

STEP 06では、利用者が情報を投稿し、その内容についてコメントでやり取りできるようにしました。

投稿とコメントを蓄積できるようになると、次に必要になるのが過去の情報を探す仕組みです。情報が増えるほど、「どこに書いてあったかは覚えていないが、使われていた言葉は覚えている」という場面が増えます。

そこでSTEP 07では、WordPressの標準検索を土台に、投稿だけでなくコメントも探せる検索機能を作りました。蓄積した情報を、必要になったときにもう一度使える状態にします。

ナビゲーションだけでは探しきれない情報がある

STEP 04で作ったナビゲーションは、HOME、カテゴリー、投稿の位置関係を分かりやすくし、目的の場所へ移動するためのものです。どの種類の情報がどこにあるか分かっているときに役立ちます。

一方、検索はキーワードから情報を探す入口です。カテゴリーや投稿日を覚えていなくても、タイトル、本文、コメントに含まれる言葉から目的の情報へたどり着けます。

ナビゲーション
└─ 情報の場所をたどる

検索
└─ 覚えている言葉から探す

どちらか一方へ置き換えるのではなく、場所が分かるときはナビゲーション、分からないときは検索という二つの入口を用意しました。

WordPressの標準検索を土台にする

WordPressには、検索欄から送られたキーワードを使い、投稿や固定ページを探す標準機能があります。検索フォームの入力値はURLのsという項目でWordPressへ渡り、検索結果の一覧が作られます。

今回はこの流れをそのまま使い、テーマのheader.phpへ検索フォーム、search.phpへ検索結果画面を用意しました。標準機能で足りない検索対象と表示だけを、functions.phpと検索結果テンプレートで補っています。

投稿と固定ページの検索にはWordPressのメイン検索を使い、公開済みの内容を一度に20件ずつ表示します。コメントは別に検索し、承認済みのコメントだけを新しい順に取得する構成です。

ヘッダー右上から検索できるようにする

検索フォームは、サイトの上部にあるヘッダーへ置きました。入力欄には「投稿・コメントを検索」と表示し、検索ボタンと組み合わせています。

最初は検索欄とメニューが同じ領域を使っていましたが、上部が高くなりすぎないよう、検索欄をヘッダーの右上へ移動しました。利用者名やログイン操作と同じ上段へまとめ、ナビゲーションはその下へ分けています。

入力中であることが分かるよう、検索欄を選ぶと背景色と枠が変わる表示も追加しました。ブラウザーやWindows環境でも文字と入力位置を確認しやすいよう、フォームのフォントとフォーカス表示をそろえています。

ページに合わせて検索範囲を変える

検索対象を常にサイト全体にすると、情報が増えたときに関係の薄い結果も混ざります。一方、最初から細かい条件を利用者へ選ばせると操作が増えます。

そこで、開いているページに合わせて検索範囲を自動で決めるようにしました。

  • HOMEでは、サイト全体の投稿・固定ページ・コメントを検索
  • カテゴリーの一覧では、そのカテゴリー内の投稿とコメントを検索
  • 投稿ページでは、その投稿が属する社内ポータル用カテゴリー内を検索

カテゴリー内を検索するときは、検索フォームへカテゴリーIDを隠し項目として加えます。functions.phpのcompany_portal_search_category_id()が現在のページから対象カテゴリーを判断し、WordPressの検索とコメント検索の両方へ同じ範囲を渡します。

検索欄の上には「検索範囲:サイト全体」またはカテゴリー名を表示しました。範囲が自動で変わっても、どこを探しているのかを利用者が確認できます。

投稿・固定ページとコメントを分けて表示する

検索結果画面は、一つの一覧へすべてを混ぜず、「投稿・固定ページ」と「コメント」の二つに分けました。

投稿・固定ページの結果には、種類、タイトル、本文の一部を表示します。タイトルを選ぶと対象ページへ移動でき、結果が多い場合はページを切り替えられます。

コメントの結果には、「コメント」という種類、コメントが付いた投稿のタイトル、コメント本文の一部、投稿者名、日付を表示します。タイトルのリンク先には該当コメントの位置が含まれるため、投稿ページを開いた後にコメントまで移動できます。

検索欄へキーワードを入力
↓
検索範囲を引き継いで実行
↓
投稿・固定ページ / コメントを分けて表示
↓
該当するページまたはコメントへ移動

検索結果の本文とコメントは長く表示しすぎず、内容の一部を抜粋します。抜粋は、元の本文から検索結果用に短く切り出した文章です。検索した言葉は黄色で強調し、なぜその結果が表示されたのか分かるようにしました。

コメントも独自に検索する

WordPressの標準検索は、通常は投稿や固定ページを対象にします。しかし、今回の社内ポータルでは、STEP 06でコメントにも補足や対応結果を残せるようにしました。投稿だけを検索しても、コメントにしかない情報は見つかりません。

そのため、search.phpでコメントを別に取得しています。入力されたキーワードをコメント全文から探し、サイト全体の検索では全公開投稿のコメント、カテゴリー検索ではそのカテゴリーに属する投稿のコメントだけを対象にします。

投稿検索とコメント検索は別の処理ですが、同じ検索語と同じ検索範囲を使い、一つの結果画面へまとめました。利用者は検索先の違いを意識せず、蓄積された情報を横断して探せます。

見つからない場合も結果を明確にする

検索語に一致する内容がない場合は、空の一覧だけを表示せず、「一致する投稿・固定ページはありません」「一致するコメントはありません」と、それぞれの欄へ表示します。

投稿には一致しないがコメントには一致する場合や、その逆もあります。二つを分けて結果を示すことで、どの対象で見つからなかったのかを判断できます。

検索範囲も結果画面へ表示するため、カテゴリー内で見つからないときに「サイト全体を探した結果」と誤解しにくくなりました。

検索の流れをPCとスマートフォンで確認する

実装後は、次の流れを確認しました。

  • HOMEから検索すると「サイト全体」が検索範囲になる
  • カテゴリーと投稿ページでは、対象カテゴリー名が検索範囲に表示される
  • キーワードに一致する投稿・固定ページとコメントが別々に表示される
  • 検索した言葉がタイトル、抜粋、コメント内で強調される
  • 検索結果のリンクから対象ページや該当コメントへ移動できる
  • 一致する内容がない場合に、対象ごとの案内が表示される
  • PCとスマートフォンで検索欄と結果が画面からはみ出さない

スマートフォンではヘッダー内の要素を縦に並べ、検索フォームを画面幅に合わせます。PCではヘッダー右側へ配置し、ナビゲーションの高さを増やしすぎない構成にしました。

検索を作って分かったこと

社内情報は、保存できるだけでは十分ではありません。投稿やコメントが増えるほど、必要なときに見つけられることが価値になります。

ナビゲーションは情報の場所を整理し、検索は覚えている言葉から情報へ戻るための仕組みです。役割を分けたことで、日常的に見る情報と、過去から探す情報の両方へ進めるようになりました。

また、WordPressの標準検索を土台にすれば、検索の仕組みをすべて最初から作る必要はありません。コメント検索と範囲表示を必要な分だけ足すことで、今回の社内ポータルに合う検索へ調整できました。

次は繰り返す作業を仕組みにする

投稿とコメントを蓄積し、検索で必要な情報を探せるようになりました。次に見えてきたのは、投稿のたびに繰り返している入力や判断です。

STEP 08では、日付と時間帯から投稿タイトルを自動生成し、カテゴリーを設定して、同じ投稿の重複も確認する仕組みを作ります。


← STEP 06「社内ポータルで投稿とコメントを使う。情報共有とやり取りの仕組みを作る。」
PROJECT 002の記事一覧を見る
NEXT → STEP 08「社内ポータルの作業を自動化する。繰り返す操作をWordPressに任せてみる。」