カスタム投稿タイプのWordPress検索フォームを作成することは、サイト所有者から最もよく聞かれるリクエストの1つです。
サイトに、デフォルトの投稿やページ以外のカスタム投稿タイプが含まれている場合、WordPressは期待どおりにそれらを検索しません。
組み込みの検索は各投稿のタイトル、抜粋、コンテンツを確認するため、カスタムフィールドやタクソノミタームを直接検索しません。
そのため、カスタム投稿タイプの個別の検索フォームが信頼性の高い解決策となります。そうでなければ、訪問者は探しているものを見つけられず、代わりにGoogleに流れてしまいます。
そこで、このステップバイステップのチュートリアルでは、カスタム投稿タイプのWordPress検索フォームを作成する方法を説明します。
主なポイント:
- カスタム投稿タイプの検索フォームは、選択した投稿タイプのみを返します。そのため、レシピ検索ではレシピのみが表示され、それ以外は表示されません。
- WordPressの組み込み検索は、カスタムフィールドやタクソノミターム自体を検索せず、検索フォームを1つの投稿タイプにスコープするためのダッシュボード設定も提供しません。
- SearchWPは、カスタム投稿タイプ、カスタムフィールド、タクソノミーを検索可能にし、各フォームが独自の検索エンジンを使用できるようにします。
- このチュートリアルのすべては、SearchWPのStandardライセンスに含まれているため、途中でアップグレードを購入する必要はありません。
カスタム投稿タイプのWordPress検索フォームを作成する理由
デフォルトでは、WordPressには投稿とページの2つの主要なコンテンツタイプが付属しています。独自のカスタム投稿タイプを作成し、必要なカスタムフィールドを追加することは自由です。
カスタム投稿タイプは、標準の投稿やページに収まらないコンテンツを公開する場合に便利です。サイトの目的に合わせてコンテンツを整理できます。
簡単に言えば、カスタム投稿タイプはWordPressをブログプラットフォームから本格的なコンテンツ管理システムへと進化させます。
例えば、レシピブログを運営している場合、「レシピ」というカスタム投稿タイプを作成することが考えられます。
その後、材料、調理方法、準備時間などのカスタムフィールドを追加して、各エントリをより具体的で読者にとって役立つものにすることができます。
訪問者があなたが選択したカスタム投稿タイプのみを検索できるフォームがあれば、適切なコンテンツを見つけやすくなります。
例えば、「レシピ」投稿タイプのみを検索する検索フォームを追加したとしましょう。
「チキン」と入力した訪問者は、チキンに関する記事、ニュース投稿、またはページではなく、チキンのレシピのみを見つけることができます。
私たちの経験から、これはサイトオーナーが最初に気づく変更点です。なぜなら、結果が最終的に求めていたものと一致するようになるからです。
デフォルトのWordPress検索がここで間違っていること
設定に入る前に、組み込み検索がどこで限界に達するのかを正確に理解しておくと役立ちます。
私たちは多くのサイトオーナーと協力してきましたが、彼らはこの問題で何週間もテーマを責めていました。
- 1つの検索でサイト全体をカバーします。 WordPressは一度にコンテンツタイプ全体に対して単一のクエリを実行するため、レシピを探している訪問者には、ページ、投稿、製品が同じリストに混在して表示されます。「このフォームはレシピのみを返します」という設定はダッシュボードにはありません。
- カスタムフィールドは検索に含まれません。 WordPressはデフォルトではカスタムフィールドを検索しないため、独自のフィールドに保存されている材料、SKU、またはエージェント名は、誰かが入力したものと一致しません。レシピサイトでは、「パプリカ」と検索しても、その単語がタイトルや本文に偶然含まれていない限り何も見つかりません。
- 分類用語も検索されません。 WordPressの組み込み検索は分類用語自体を検索しないため、「タイ」という料理用語の下に分類されたレシピは、「タイ」という言葉がタイトル、抜粋、またはコンテンツにも表示されている場合にのみ表示されます。したがって、コンテンツを整理するために構築した分類は、検索では何の役にも立ちません。
- 何が最も重要かを制御できません。 WordPressはタイトルの一致をリストの上位に、抜粋の一致を本文の一致の上に押し上げますが、その順序は固定されており、ダッシュボードの設定で変更することはできません。材料の一致が、ページの下部にある一時的な言及よりも重要であると言う方法はありません。
知っておく価値のあるもう1つの問題があります。
カスタム投稿タイプは、検索結果から完全に除外されるように登録されることがあり、多くのプラグインはそのように投稿タイプを登録しています。
その場合、テーマの検索テンプレートをいくら調整しても、そのコンテンツは戻ってきません。
良いニュースは、これら4つのギャップすべてが同じ設定で閉じられ、コードを書く必要がないことです。
カスタム投稿タイプ用のWordPress検索フォームを作成する
カスタム投稿タイプ検索フォームを構築する最も信頼性の高い方法は、SearchWPを使用することです。

SearchWPは最高のWordPress検索プラグインであり、50,000以上のウェブサイト所有者から信頼されています。
これにより、何をインデックス化するか、何を検索するか、各フィールドが結果にどれだけ影響するかを制御できます。
この作業で最も重要なSearchWPの機能は次のとおりです。
- 複数の検索エンジン。同じサイトで複数の検索エンジンを実行でき、それぞれに独自のソースとルールがあります。これにより、レシピフォームとメインサイトの検索を完全に異なる動作させることができます。
- カスタムフィールドと分類法のインデックス作成。SearchWPは、タイトルとコンテンツと並んでカスタムフィールドと分類法のタームをインデックス化できるため、各エントリに添付したデータが検索可能になります。
- 検索フォームビルダー。ダッシュボードで検索フォームを作成およびスタイル設定し、ブロックまたはショートコードで配置できます。テンプレートファイルやコードは不要です。
- 制御可能な関連性の重み。すべての検索可能なフィールドには重みがあり、カスタムフィールドに埋もれた一致よりもタイトルの一致を優先するかどうかを決定します。
これで、SearchWPを使用してカスタム投稿タイプの検索フォームを構築する方法を見てみましょう。
ステップ1:SearchWPのインストールと有効化
まず、SearchWPのウェブサイトにアクセスし、サイトに合ったプランを選択してアカウントにサインアップしてください。
このチュートリアルのすべてはStandardプランで機能するため、アップグレードする必要はありません。
サインアップしたら、アカウントにログインし、Downloadsタブを開きます。
そこから、SearchWP ZIPファイルをコンピューターにダウンロードします。

すぐに必要になるため、同じ画面からライセンスキーをコピーしておいてください。
次に、他のWordPressプラグインと同様にSearchWPをインストールしてアクティブ化できます。
アクティブ化後、セットアップを案内するウェルカム画面が表示されます。
Start Onboarding Wizardをクリックして、ライセンスキーの貼り付けを含むガイド付きセットアップに従ってください。

SearchWPの準備ができました。カスタム投稿タイプのフォームを強化する検索エンジンを構築する準備が整いました。
ステップ2:カスタム投稿タイプの検索エンジンを作成する
検索エンジンとは、検索がどのように実行されるかを決定するルールのセットと考えてください。
SearchWPはセットアップ中にデフォルトのエンジンを作成し、そのエンジンがメインサイトの検索を引き継ぎます。
それを変更するのではなく、2番目のエンジンを追加します。SearchWPはこれを補完エンジンと呼び、既存のサイト検索はそのまま維持されます。
開始するには、WordPressダッシュボードからSearchWP » Algorithmに移動します。
この画面はEnginesと表示され、サイト上のすべてのエンジンがリストされます。
次に、Add Newをクリックして2番目のエンジンを作成します。

SearchWPはすぐに新しいエンジンのSources & Settingsパネルを開くため、探し回る必要はありません。
パネルは、利用可能なすべてのソースのチェックボックスが付いたSourcesリストで開きます。
ここでスコープが設定されます。カスタム投稿タイプ(この場合はRecipes)以外のすべてをオフにします。
次に、リストを下にスクロールしてOptionsに進み、Engine Labelフィールドに「Recipes」のような、後で認識できる明確な名前をエンジンに付けます。

完了したら、Doneをクリックしてパネルを閉じます。
注意:公開として登録されているすべての投稿タイプが、利用可能なソースとしてここに表示されます。これには、WordPress が独自の検索結果から除外している投稿タイプも含まれます。そのため、SearchWP はテーマの検索では到達できないコンテンツにもアクセスできます。
現在、レシピのみを検索するようにエンジンを設定していますが、WordPress が検索するのと同じフィールドを参照しています。
これを修正するには、レシピソースを見つけて、属性の追加/削除をクリックします。
ソースとエンジンにちなんだ名前のパネルが開きます。そのため、私たちのパネルは レシピ属性の管理 (レシピ エンジン) と表示されます。
ここで、エンジンが実際に読み取るフィールドを選択します。
カスタムフィールドの見出しの下で、検索したいメタキーを選択します。今回は、材料、調理方法、準備時間です。

次に、分類法の下で同様のことを行い、料理とコースの分類法を選択して、そのタームを検索可能にします。
選択を保存してパネルを閉じるには、完了をクリックしてください。
ソースに戻ると、適用可能な属性の関連性の下にあるスライダーが、各フィールドの重要度を制御します。
タイトルはデフォルトでスケールの最上位にありますが、各カスタムフィールドは最下位から始まります。
追加したメタキーごとにスライダーが表示されるため、材料のような単一のフィールドを、タイトルの一致よりも優先順位が高くならないように、わずかに引き上げることができます。

重みが適切になったら、右上隅にある保存をクリックします。
最後に、インデックスの再構築をクリックして、SearchWP が追加したフィールドをインデックス化するようにします。
ブラウザはインデックスを再構築してもよいか確認を求めますので、プロンプトを承認して再構築を開始してください。
再構築をスキップすることは、新しい属性が機能しないように見える一般的な理由です。エンジンの設定については、SearchWP エンジン ドキュメントをお読みください。
ステップ3:検索フォームを作成してサイトに追加する
エンジンが準備できたら、訪問者が実際に使用するフォームを作成できます。
開始するには、SearchWP » 検索フォームに移動し、新規追加をクリックします。

認識しやすいフォームの名前を付け、テーマの選択の下でレイアウトを選択します。
レイアウトテーマのオプションは、基本、カテゴリ検索、クイック検索、高度な検索、組み合わせです。
ここでは基本を選択しました。このフォームは単一のスコープ付き検索ボックスで十分だからです。

次に、フォームの動作設定と外観が含まれるカスタムスタイリングセクションまでスクロールします。
ここで最も重要な設定は、この検索フォームが使用するエンジンです。
エンジンドロップダウンを、ステップ2で作成したエンジン、つまり「レシピ」エンジンに設定します。

この1つのドロップダウンが、フォームを他のサイト全体の検索ボックスではなく、カスタム投稿タイプ検索フォームにしています。
そのすぐ下にある結果ページ設定は、訪問者が検索後にどこに表示されるかを決定します。
サイトデフォルトを選択するとテーマの検索結果ページに送信されますが、SearchWPを選択すると、独自のレイアウトとスタイリングコントロールを備えたSearchWP独自の検索結果ページが使用されます。
SearchWPを選択すると、その下にターゲットページ設定が表示され、結果を表示するページを選択できます。
また、プレースホルダーテキストを設定して、ボックスに一般的なデフォルトの代わりに「レシピを検索」のようなテキストを表示させることもできます。
フォーム自体にフィルターやドロップダウンをさらに追加したい場合は、WordPressの高度な検索フォームに関するガイドを参照してください。
フォームの外観が整ったら、保存をクリックします。
次に、埋め込みをクリックして、サイトに配置する方法を確認します。

SearchWPは、既存のページを使用するか新しいページを作成するかを尋ねます。すでにページが準備できているので、既存のページを選択をクリックし、ページを選択ドロップダウンから選択してから、開始!をクリックします。
ページがエディターで開いたら、検索ボックスを表示したい場所にSearchWPフォームブロックを追加します。これは、SearchWPブロックカテゴリの下にあります。
次に、ブロックのドロップダウンからフォームを選択します。

最後に、ページを発行または更新します。
プロのヒント:すべてのフォームにはショートコードがあり、SearchWP »検索フォーム画面のショートコード列にリストされています。ウィジェットエリア、サイドバー、またはページビルダーレイアウトに同じフォームをドロップする最も簡単な方法です。
ステップ4:カスタム投稿タイプの検索フォームをテストする
カスタム投稿タイプの検索フォームがライブになりました。設定の両方の部分が機能していることを確認しましょう。
フォームを配置したページにアクセスし、2回検索を実行します。
まず、「チキン」で検索します。
すべての結果はレシピであるべきで、ブログ投稿、ページ、または無関係なコンテンツが混在しないはずです。これにより、エンジンがカスタム投稿タイプに正しくスコープされていることが確認されます。
次に、カスタムフィールドにのみ表示され、レシピのタイトルには表示されない材料(例:「パプリカ」)で検索します。
パプリカを使用するレシピがまだ表示される場合、カスタムフィールド属性がインデックス化されており、機能しています。

最初の検索は成功したが、2番目の検索で何も返されない場合、一般的な原因は、属性を追加した後にインデックスの再構築を忘れたことです。
カスタム投稿タイプの検索が機能しない場合の対処法に関するガイドでは、確認すべきその他の事項を説明しています。
ボーナス:検索フォームにライブ結果とフィルターを追加する
フォームが機能したら、知っておくと便利なアップグレードが2つあります。
1つ目はライブ検索で、訪問者が入力するにつれて一致する結果をドロップダウンに表示し、結果ページを読み込ませるのではなく、リアルタイムで表示します。
SearchWP »拡張機能から、ライブ検索カードを見つけてインストールできます。プラグイン自体はSearchWP Live Ajax Searchと呼ばれます。Standard以上に含まれているため、このチュートリアルで使用されているライセンスと同じライセンスで利用できます。
2つ目はフィルタリングで、カスタム投稿タイプに分類法があり、それらによってブラウジングする価値がある場合にうまく機能します。
WPFilters (All Access) は、結果ページにファセットスタイルのフィルターを追加します。また、WordPress の検索結果にフィルターサイドバーを追加する方法に関するガイドでは、そのセットアップがどのようなものかを示しています。
よくある質問
1. WordPress はデフォルトでカスタム投稿タイプを検索しますか?
公開されているカスタム投稿タイプはWordPressの検索結果に表示される可能性がありますが、組み込みの検索は各エントリのタイトル、抜粋、コンテンツのみを確認します。カスタムフィールドやタクソノミーターム自体は検索せず、1つの投稿タイプにフォームを制限する設定もありません。一部の投稿タイプは、検索結果にまったく表示されないように登録されている場合もあります。
2. 1つの投稿タイプのみを検索する検索フォームを作成できますか?
はい、このチュートリアルではまさにそれを行います。SearchWP では、SearchWP » Algorithm の下に 2 番目のエンジンを作成し、Sources & Settings を使用してカスタム投稿タイプのみを選択し、フォームの Engine ドロップダウンをそのエンジンに設定します。私たちはこれを使用して、同じサイトでレシピ検索とサイト全体の検索を実行しましたが、互いに干渉することはありませんでした。
3. WordPress でカスタムフィールドを検索可能にするにはどうすればよいですか?
エンジンのエディターでソースの Add/Remove Attributes をクリックし、Custom Fields の見出しの下で検索したいメタキーを選択するか、すべてのメタキーを含めるには Any Meta Key を選択します。その後、Save をクリックしてから Rebuild Index をクリックして、フィールドデータがインデックス化されるようにします。 WordPress カスタムフィールド検索の追加に関するガイドでは、ACF フィールドを WordPress 検索に含める方法を含む詳細をカバーしています。
4. 同じサイトに複数の検索フォームを設置できますか?
はい、可能です。各フォームは異なるエンジンを指すことができます。レシピフォームはレシピを検索でき、ヘッダー検索はすべてをカバーできます。これは、Engine 設定がフォームごとに保存されるためです。 WordPress サイトに複数の検索フォームを追加する方法に関するガイドでは、複数のフォームを一度に管理する方法を示しています。
まとめ
これで、単一のカスタム投稿タイプにスコープされた検索エンジンが構築され、そのカスタムフィールドとタクソノミーがインデックス化され、それ以外のものは何も検索しないフォームが配置されました。
この記事が、カスタム投稿タイプの WordPress 検索フォームの作成方法を学ぶのに役立ったことを願っています。
また、WordPress カスタムフィールド検索の追加およびWordPress 検索結果ページのカスタマイズに関するガイドも参照してください。
カスタム投稿タイプを見つけやすくする準備はできましたか? 14 日間の返金保証付きの SearchWP をここから入手して始めることができます。



