カスタム検索フォームを作成する

Formidable WordPress form builderプラグインを使用してカスタムWordPress検索フォームを作成します。 これにより、ビュー内でフォーム送信を検索(またはフィルタリング)できます。

Formidable Formsは最高のWordPressフォームビルダープラグインです。 無料でそれを入手!
注:postアクションからのデータを使用する動的フィールドは、ビューとformresultsショートコードで検索できるようになりました。

カスタム検索フォームを作成する

以下のチュートリアルの指示に従って、カスタム検索フォームを作成する方法を学びます。

  1. まだ行っていない場合は、検索されるすべてのフォームエントリを格納するフォームを作成します。 これはあなたのデータフォームになります。
  2. まだ作成していない場合は、手順1で作成したデータフォームのエントリを表示するビューを作成します。 これが結果ビューです。 ビューは、「すべてのエントリ」または「両方(動的)」を表示するように設定する必要があります。
  3. 次のショートコードを使用して、結果ビューをページに公開します:
    
    

    ‘x’を結果ビューのIDに置き換えます。 ページのURLをコピーします。

  4. 新しいフォームを作成すると、これが検索フォームになります。 フォームに必要な数のフィールドを追加します。 検索フォームは次のようになります。
    高度なWordPress検索フォーム
    データフォームに検索したい動的フィールドがある場合は、同じ設定で動的フィールドを検索フォームに追加します。Repeater内の値を検索する場合は、最初にrepeaterからビューを作成することをお勧めします。
  5. 検索フォームの”設定”ページに移動します。 “送信時”セクションで、”URLにリダイレクト”を選択します。 [URL]ボックスに、結果ビューが公開されているページのURLを貼り付けます。
    詳細検索リダイレクトURL
  6. 検索フォームの各フィールドのリダイレクトURLの末尾にパラメータを追加します。 これらのパラメータは、検索フォームに入力された値を結果ビューフィルタに渡すために使用されます。
    • リダイレクトURLの最後に最初のパラメータを追加すると、次のようになります:
      ?fname=
    • ‘fname’を任意のテキストに置き換えます。 ‘Post’、’p’、’date’、’year’、’month’、および’name’のような名前は、WordPressで一般的に使用されているため、避けてください。
    • ‘x’を検索フォームの’First Name’フィールドのIDに置き換えます。
    • 追加のパラメータについては、’?’を置き換えます。’と’&’。 最初のパラメータはaで始まる必要がありますか?、追加の各パラメータは&で始まる必要があります。

    パラメータの追加が完了すると、リダイレクトURLは次のようになります。
    詳細検索URl W/Params
    ’25’、’26’、および’27’を検索フォームのフィールドIdに置き換えます。

  7. 検索フォームの”設定”→”フォームアクション”に移動し、”メール通知”を削除します。
    詳細検索フォームメール通知の削除
    また、”送信時”セクションの”設定”→”一般”で”このフォームから送信されたエントリを保存しない”を選択することをお勧めします。
    詳細検索エントリを保存しない
  8. 結果ビューの編集に移動します。 “詳細設定”までスクロールし、検索フォームの各フィールドにフィルタを追加します。
    詳細設定
    ‘fname’、’lname’、および’state’が、手順6でリダイレクトURLの末尾に追加したパラメータ名と一致することを確認します。

検索フォームと結果ビューの公開

検索フォームと結果ビューを公開するには、いくつかの異なる方法があります。 検索フォームと結果を同じページまたは別のページに表示することができます。 同じページに表示されている場合は、検索が実行されるまで結果を非表示にすることができます。

検索フォームと結果を同じページに公開

検索フォームと結果ビューを同じページに公開したい場合は、次の手順に従います:

  1. まだ作成していない場合は、カスタム検索フォームを作成します。 結果ビューがページに公開されていることを確認します。
  2. 結果ビュー’コンテンツの前’に移動します。 “コンテンツの前に”に検索フォームを挿入します。
    
    

    ‘x’を検索フォームのIDに置き換えます。
    コンテンツの前に高度な検索フォーム

  3. 結果ビューで、”詳細設定”までスクロールダウンします。 “エントリなしメッセージ”ボックスに検索フォームを挿入します。
    
    

    ‘x’を検索フォームのIDに置き換えます。

  4. “更新”をクリックします。 これで、ユーザーが結果ビューが公開されているページにアクセスすると、検索フォームと結果ビューが一緒に表示されます。
    高度な検索フォームGif

検索フォームと結果を別々のページに公開する

ユーザーが検索フォームを送信した後に別の検索結果ページに移動したい場合は、以下の手順に従ってください。

  1. まだカスタム検索フォームを作成していない場合は、カスタム検索フォームを作成します。 結果ビューがページに公開されていることを確認します。
  2. 次のショートコードを使用してページに検索フォームを公開します。
    
    

    ‘x’を検索フォームのIDに置き換えます。

  3. “更新”をクリックします。 ユーザーが検索フォームで検索を送信すると、検索結果が表示されるページにリダイレクトされます。

検索が実行されるまで結果ビューを非表示にする

検索が実行される前に結果が表示されないようにするには、以下の手順に従います。

  1. まだカスタム検索フォームを作成していない場合は、カスタム検索フォームを作成します。 カスタム検索フォームが既に作成されている場合は、ビューの「コンテンツの前」または「コンテンツの後」セクションに含まれていないことを確認してくださ
  2. 検索フォーム’設定’に移動し、リダイレクトURLの最後にこれを追加します。
    &show_view=yes

    リダイレクトURLは次のようになります。
    詳細検索リダイレクトURLビューを表示

  3. (オプション)あなたの結果ビューは、任意のショートコードを持っている場合は、”?最後にshow_view=yes’を指定します。 これは次のようになります:
    <a href="?show_view=yes">Link Name</a>
  4. 最後に、検索フォームと結果ビューをページに公開します。 XをフォームID、yをビュー IDに置き換えます。
    
    

    完了したら必ずページを保存してください。

  5. ページが訪問されると、検索が送信されるまでエントリは表示されません。
    詳細検索表示表示送信

検索後に検索語を表示する

検索が実行されると、検索フォームはデフォルトで空白になります。 検索フォームと結果ビューが同じページにある場合は、必要に応じて、検索フォームに検索用語を入力できます。 URLから対応する検索語を次のように取得して、各フィールドのデフォルト値を設定します:


リダイレクトURLのフィールドに使用したものとまったく同じparam名を使用します。 フィールドに検索語が設定されている場合は、その検索語がフィールドに表示されます。 それ以外の場合、フィールドは空白になります。 ユーザーが最初に検索フォームを表示すると、そのフィールドは空白になります。

追加オプション

検索フォームでチェックボックスフィールドを使用する

検索フォームでチェックボックスフィールドを使用する場合は、このコードをコードスニペットプラグインまたは子テーマの関数に追加してください。phpファイル。

検索日

検索フォームに日付フィールドを含めると、検索結果が不正確になる可能性があります。 したがって、検索フォームでリダイレクトURLを少し変更する必要があります。 フォームの日付部分が次のようになる場合:mydate=、それを次のように変更します:mydate=。 これにより、検索に使用される日付の形式が変更されます。
高度な検索リダイレクトURL日付

検索日付範囲

日付範囲を使用して検索する場合は、以下の手順に従ってください:

  1. 検索フォームに、2つの日付フィールドを追加します: 開始日と終了日。
    WordPressの検索フォームの日付フィールド
  2. データフォームビューで、詳細設定セクションを探し、日付フィールドに二つのフィルタを追加します。
    ワードプレス検索フォームフィルタ日付
  • Dateフィールドが
  • 以上Dateフィールドが
  • 以下検索フォームで、各フィールドのリダイレクトURLの末尾にstartdateパラメーターとenddateパラメーターを追加します。
    /search-form/?startdate=&enddate=

    100と101をそれぞれのフィールドIdに置き換えます。
    ワードプレスの検索フォームのリダイレクトURL

  • 検索URLから空のフィールドを削除する

    入力されていないときにURLから検索フィールドを削除したい場合は、次のように各パラメータの周りにif文を追:

    http://your-sites-url/search-form?fname=&lname=&date=

    これらのフィールドIdは、検索フォームからのIdです。 フィールドが検索フォームで空白のままになっている場合、URLのその部分を削除するために使用されます。

    すべてのフィールドを検索

    ビューに表示されないフィールドを含む、結果ビューのすべてのフィールドを検索するフィールドを検索フォームに追加したい場合は、検索フォームにテキストフィールドを追加し、’?frm_search=’検索フォームのリダイレクトURLの最後にあります。

    http://your-sites-url/search-form?frm_search=

    25をテキストフィールドのIDに置き換えます。

    動的フィールドからの重複の削除

    非動的フィールドからデータを検索する検索フォームで動的フィールドを使用する場合、動的フィールドに重複する値が表 Frm_remove_duplicates関数を使用して、検索フォームの動的フィールドから重複した値を削除できます。

    トラブルシューティング

    トラブルが発生した場合は、次の手順に従って検索フォームのトラブルシューティングを行ってください:

    1. 検索結果ビューを複製し、フィルター内の値をハードコードされた値に置き換えます。 たとえば、赤に置き換えてから、ビューをプレビューして、フィルターが期待される結果を得るようにします。
    2. paramの値がエントリの値と完全に一致していることを確認します—間隔、句読点、スペル、大文字など。 ビューが正しくフィルタリングされている場合は、検索フォーム自体に問題がある可能性があり、手順6に進むことができます。 ビューがまだ正しくフィルタリングされていない場合は、エントリ、データフォーム、またはビュー自体に他の問題がある可能性があります。
    3. 検索フォームを送信した後にリダイレクトされたページを表示します。 ページのURLを見て、パラメータが正しく表示されていることを確認してください。
      ?fname=Rob&lname=Smith&uState=Arizona
    4. パラメーターが空白の場合、または正しく表示されない場合は、&color=を&color=Redに変更するなど、検索対象のフィールドの値に手動で変更してみてください。
    5. WordPressで予約されている可能性のあるパラメータは使用しないでください。 例えば、変更?m=&p=to?model=&price=ビューフィルタ設定でショートコードを更新します。
      あなたのパラメータ名がWordPressで使用されていないことを確認するには、ドキュメントのクエリパラメータリストと比較してください。
    6. ユーザー IDフィルタやエントリ数の制限など、エントリが表示されないようなフィルタがビューに設定されていないことを確認します。
    7. 検索フォームの”URLにリダイレクト”設定のフィールドIDショートコードが、データフォームではなく、検索フォーム内のフィールドの正しいフィールドIdであることを
    8. 正しいフォームのエントリを検索していること、およびそのフォームのエントリが存在することを確認します。

    これらの手順をすべて実行しても問題が解決しない場合は、ヘルプデスクチケットを開き、上記の手順の結果をお知らせください。

    Write a Comment

    メールアドレスが公開されることはありません。