WordPressで制作されたウェブサイトに関するサイト内検索条件の基礎

本記事では、WordPress で制作されているウェブサイトで可能な検索条件について解説します。

WordPress は、検索仕様も決まっています

WordPress で制作されているウェブサイトは、そのウェブサイト上に検索フォームが無い場合であっても、WordPress の仕様に沿った検索は可能です。また、細かい検索条件もURLのパラメータを渡すことで設定できます。

検索のリクエスト方式は、GET

テネーブル

WordPress で制作されているウェブサイトの検索には GETクエリ で検索条件を設定できます。

ブリエ

GETクエリ?

テネーブル

URL で、?から始め xxxx=yyyy と言ったキー名と値の各クエリを & でつなげていくリクエスト方法です。? より後の文字列は「クエリ ストリング」と呼ばれ、送信するデータを表しています。

検索クエリ一覧

検索キーワード文字列(必須クエリ)

必須クエリです。このクエリを設定しないと、検索になりません。

  • 検索キーワード文字列のキー名は、sです。
  • +で文字列を繋ぐと、各文字列を AND条件 で絞り込みます。
  • ,で文字列を繋ぐと、各文字列を OR条件 で絞り込みます。
  • 値を設定しない場合は、キーワード条件を使用しません。

クエリストリングの例:

  • ?s=検索したい文字列(検索したい文字列に該当する記事を検索)
  • ?s=単語1+単語2(単語1 かつ 単語2 に該当する記事を検索)
  • ?s=単語1,単語2(単語1 または 単語2 に該当する記事を検索)

並び順

  • 検索結果の並び順のキー名は、order です。
  • ASC を値に設定した場合は、古い順でソートされます。
  • DESC を値に設定した場合は、新しい順でソートされます。

値を設定しない場合は、 DESC を使用されます。

クエリストリングの例:

  • ?order=ASC(古い順から検索結果を表示)
  • ?order=DESC(新しい順から検索結果を表示)

投稿の種類(投稿タイプ)

  • 投稿の種類のキー名は、post_type です。
  • 値には投稿タイプの slug を設定します。
  • post が投稿、page が固定ページと言ったように値を割り当てられています。
  • カスタム投稿の場合は、カスタム投稿の slug を設定すると、カスタム投稿タイプで絞り込めます。

値を設定しない場合は、サイト内のすべての投稿が条件となります。

クエリストリングの例:

  • ?post_type=post(投稿だけで検索を絞り込む)
  • ?post_type=page(固定ページだけで検索を絞り込む)

カテゴリー

  • カテゴリーのキー名は、catです。
  • 値はカテゴリーのIDを設定します。
  • +で文字列を繋ぐと、各文字列を AND条件 で絞り込みます。
  • ,で文字列を繋ぐと、各文字列を OR条件 で絞り込みます。
  • カテゴリーIDを 負の値 (マイナス値) にした場合は、該当カテゴリーを検索結果から除外するように設定されます。

クエリストリングの例:

  • ?cat=1+2( 1 または 2 の ID が設定されているカテゴリーで絞り込む)
  • ?cat=-2( 2 の ID が設定されているカテゴリーを除外して絞り込む)
ブリエ

カテゴリーIDってどうやって知るの?

テネーブル

WordPressで制作されているウェブサイトであれば、ホームページの後に /wp-json/wp/v2/categories と言う URL を指定してアクセスするとREST API が有効になっている場合は、カテゴリーの情報を JSON で一覧結果を取得できます。その結果から調べれます。

category と言うクエリ名でもカテゴリーの絞り込みは可能です。しかし、その場合は、カテゴリーの slug を値に持ち、検索結果から場外できません。cat を使用するより困難でしょう。

タグ

  • タグのクエリ名は、tag です。
  • 値は タグのslug を設定します。
  • +で文字列を繋ぐと、各文字列を AND条件 で絞り込みます。
  • ,で文字列を繋ぐと、各文字列を OR条件 で絞り込みます。

クエリストリングの例:

  • ?tag=tag_slugtag_slug と言う slug が設定されているタグで絞り込み)
ルミェール

タグの一覧は、カテゴリーの ID 同様に /wp-json/wp/v2/tags と言う URL を指定してアクセスすると REST API が有効になっている場合は、JSON で一覧結果を取得できるよ。

投稿者

  • 投稿者のクエリ名は、author です。
  • 値は 投稿者のid を設定します。
  • +で文字列を繋ぐと、各文字列を AND条件 で絞り込みます。
  • ,で文字列を繋ぐと、各文字列を OR条件 で絞り込みます。

クエリストリングの例:

  • ?author=11id が設定されている投稿者の記事で絞り込み)
ルミェール

投稿者のid は、記事一覧ページ( ?author=1 )などをアクセスすると確認できるよ。

複数条件を合わせる事も

例えば、当サイトで絞り込んだ検索をしたい場合…

  • キーワード「Snow Monkey」または「カスタマイズ」かつ「パンくず
  • 並び順「古い順

の場合には

  • ?s=Snow Monkey+カスタマイズ,パンくず&order=ASC

と、なります。

ルミェール

検索条件で設定して使用する場合は、URLエンコード を忘れずにしようね。
(例なので、URLエンコードは行っておりません)

補足

ケミ

検索条件を上手に利用すると、記事一覧や用意されている検索フォームを使用するだけでは見つけにくい古い記事でも、検索結果に表示させる事が可能になります。ここでは、情報ブログの古い情報を知りたい場合などに活用することを目的に紹介しています。

当ウェブサイトで配布しているプラグインの「Not Wiz Search Criteria」は、こうした標準の検索条件クエリと幾つか未紹介のクエリを追加し、視覚的なフォームで表示するように拡張した形のプラグインとなっています。当ウェブサイトの検索条件にも導入していますので、どのようなクエリ名があるかなど調べていただいても問題ありません。

この記事の筆者

Kmix39(ケミ)

電子の妖精。当ウェブサイトの記事制作などを行なっています。
金融・不動産・医療・教育などの数々の業種のシステム開発を経験を積み、スマートフォンアプリケーションと WordPress などのウェブアプリケーションを日々勉強中。