Formidable WordPress form builderプラグインを使用してカスタムWordPress検索フォームを作成します。 これにより、ビュー内でフォーム送信を検索(またはフィルタリング)できます。
カスタム検索フォームを作成する
以下のチュートリアルの指示に従って、カスタム検索フォームを作成する方法を学びます。
- まだ行っていない場合は、検索されるすべてのフォームエントリを格納するフォームを作成します。 これはあなたのデータフォームになります。
- まだ作成していない場合は、手順1で作成したデータフォームのエントリを表示するビューを作成します。 これが結果ビューです。 ビューは、「すべてのエントリ」または「両方(動的)」を表示するように設定する必要があります。
- 次のショートコードを使用して、結果ビューをページに公開します:
‘x’を結果ビューのIDに置き換えます。 ページのURLをコピーします。
- 新しいフォームを作成すると、これが検索フォームになります。 フォームに必要な数のフィールドを追加します。 検索フォームは次のようになります。
データフォームに検索したい動的フィールドがある場合は、同じ設定で動的フィールドを検索フォームに追加します。Repeater内の値を検索する場合は、最初にrepeaterからビューを作成することをお勧めします。 - 検索フォームの”設定”ページに移動します。 “送信時”セクションで、”URLにリダイレクト”を選択します。 [URL]ボックスに、結果ビューが公開されているページのURLを貼り付けます。
- 検索フォームの各フィールドのリダイレクトURLの末尾にパラメータを追加します。 これらのパラメータは、検索フォームに入力された値を結果ビューフィルタに渡すために使用されます。
- リダイレクトURLの最後に最初のパラメータを追加すると、次のようになります:
?fname=
- ‘fname’を任意のテキストに置き換えます。 ‘Post’、’p’、’date’、’year’、’month’、および’name’のような名前は、WordPressで一般的に使用されているため、避けてください。
- ‘x’を検索フォームの’First Name’フィールドのIDに置き換えます。
- 追加のパラメータについては、’?’を置き換えます。’と’&’。 最初のパラメータはaで始まる必要がありますか?、追加の各パラメータは&で始まる必要があります。
パラメータの追加が完了すると、リダイレクトURLは次のようになります。
’25’、’26’、および’27’を検索フォームのフィールドIdに置き換えます。 - リダイレクトURLの最後に最初のパラメータを追加すると、次のようになります:
- 検索フォームの”設定”→”フォームアクション”に移動し、”メール通知”を削除します。
また、”送信時”セクションの”設定”→”一般”で”このフォームから送信されたエントリを保存しない”を選択することをお勧めします。 - 結果ビューの編集に移動します。 “詳細設定”までスクロールし、検索フォームの各フィールドにフィルタを追加します。
‘fname’、’lname’、および’state’が、手順6でリダイレクトURLの末尾に追加したパラメータ名と一致することを確認します。
検索フォームと結果ビューの公開
検索フォームと結果ビューを公開するには、いくつかの異なる方法があります。 検索フォームと結果を同じページまたは別のページに表示することができます。 同じページに表示されている場合は、検索が実行されるまで結果を非表示にすることができます。
検索フォームと結果を同じページに公開
検索フォームと結果ビューを同じページに公開したい場合は、次の手順に従います:
- まだ作成していない場合は、カスタム検索フォームを作成します。 結果ビューがページに公開されていることを確認します。
- 結果ビュー’コンテンツの前’に移動します。 “コンテンツの前に”に検索フォームを挿入します。
‘x’を検索フォームのIDに置き換えます。
- 結果ビューで、”詳細設定”までスクロールダウンします。 “エントリなしメッセージ”ボックスに検索フォームを挿入します。
‘x’を検索フォームのIDに置き換えます。
- “更新”をクリックします。 これで、ユーザーが結果ビューが公開されているページにアクセスすると、検索フォームと結果ビューが一緒に表示されます。
検索フォームと結果を別々のページに公開する
ユーザーが検索フォームを送信した後に別の検索結果ページに移動したい場合は、以下の手順に従ってください。
- まだカスタム検索フォームを作成していない場合は、カスタム検索フォームを作成します。 結果ビューがページに公開されていることを確認します。
- 次のショートコードを使用してページに検索フォームを公開します。
‘x’を検索フォームのIDに置き換えます。
- “更新”をクリックします。 ユーザーが検索フォームで検索を送信すると、検索結果が表示されるページにリダイレクトされます。
検索が実行されるまで結果ビューを非表示にする
検索が実行される前に結果が表示されないようにするには、以下の手順に従います。
- まだカスタム検索フォームを作成していない場合は、カスタム検索フォームを作成します。 カスタム検索フォームが既に作成されている場合は、ビューの「コンテンツの前」または「コンテンツの後」セクションに含まれていないことを確認してくださ
- 検索フォーム’設定’に移動し、リダイレクトURLの最後にこれを追加します。
&show_view=yes
リダイレクトURLは次のようになります。
- (オプション)あなたの結果ビューは、任意のショートコードを持っている場合は、”?最後にshow_view=yes’を指定します。 これは次のようになります:
<a href="?show_view=yes">Link Name</a>
- 最後に、検索フォームと結果ビューをページに公開します。 XをフォームID、yをビュー IDに置き換えます。
完了したら必ずページを保存してください。
- ページが訪問されると、検索が送信されるまでエントリは表示されません。
検索後に検索語を表示する
検索が実行されると、検索フォームはデフォルトで空白になります。 検索フォームと結果ビューが同じページにある場合は、必要に応じて、検索フォームに検索用語を入力できます。 URLから対応する検索語を次のように取得して、各フィールドのデフォルト値を設定します:
リダイレクトURLのフィールドに使用したものとまったく同じparam名を使用します。 フィールドに検索語が設定されている場合は、その検索語がフィールドに表示されます。 それ以外の場合、フィールドは空白になります。 ユーザーが最初に検索フォームを表示すると、そのフィールドは空白になります。
追加オプション
検索フォームでチェックボックスフィールドを使用する
検索フォームでチェックボックスフィールドを使用する場合は、このコードをコードスニペットプラグインまたは子テーマの関数に追加してください。phpファイル。
検索日
検索フォームに日付フィールドを含めると、検索結果が不正確になる可能性があります。 したがって、検索フォームでリダイレクトURLを少し変更する必要があります。 フォームの日付部分が次のようになる場合:mydate=、それを次のように変更します:mydate=。 これにより、検索に使用される日付の形式が変更されます。
検索日付範囲
日付範囲を使用して検索する場合は、以下の手順に従ってください:
- 検索フォームに、2つの日付フィールドを追加します: 開始日と終了日。
- データフォームビューで、詳細設定セクションを探し、日付フィールドに二つのフィルタを追加します。
- Dateフィールドが
- 以上Dateフィールドが
/search-form/?startdate=&enddate=
100と101をそれぞれのフィールドIdに置き換えます。
検索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関数を使用して、検索フォームの動的フィールドから重複した値を削除できます。
トラブルシューティング
トラブルが発生した場合は、次の手順に従って検索フォームのトラブルシューティングを行ってください:
- 検索結果ビューを複製し、フィルター内の値をハードコードされた値に置き換えます。 たとえば、赤に置き換えてから、ビューをプレビューして、フィルターが期待される結果を得るようにします。
- paramの値がエントリの値と完全に一致していることを確認します—間隔、句読点、スペル、大文字など。 ビューが正しくフィルタリングされている場合は、検索フォーム自体に問題がある可能性があり、手順6に進むことができます。 ビューがまだ正しくフィルタリングされていない場合は、エントリ、データフォーム、またはビュー自体に他の問題がある可能性があります。
- 検索フォームを送信した後にリダイレクトされたページを表示します。 ページのURLを見て、パラメータが正しく表示されていることを確認してください。
?fname=Rob&lname=Smith&uState=Arizona
- パラメーターが空白の場合、または正しく表示されない場合は、&color=を&color=Redに変更するなど、検索対象のフィールドの値に手動で変更してみてください。
- WordPressで予約されている可能性のあるパラメータは使用しないでください。 例えば、変更?m=&p=to?model=&price=ビューフィルタ設定でショートコードを更新します。
あなたのパラメータ名がWordPressで使用されていないことを確認するには、ドキュメントのクエリパラメータリストと比較してください。 - ユーザー IDフィルタやエントリ数の制限など、エントリが表示されないようなフィルタがビューに設定されていないことを確認します。
- 検索フォームの”URLにリダイレクト”設定のフィールドIDショートコードが、データフォームではなく、検索フォーム内のフィールドの正しいフィールドIdであることを
- 正しいフォームのエントリを検索していること、およびそのフォームのエントリが存在することを確認します。
これらの手順をすべて実行しても問題が解決しない場合は、ヘルプデスクチケットを開き、上記の手順の結果をお知らせください。