web-dev-qa-db-ja.com

検索結果ページをバックエンドページに接続する方法

私のサイトでは、編集者はサイトのすべてのページに「バナー」画像をアップロードできます。しかし、検索結果ページをバックエンドページ(つまりexample.com/?s=searchtermに表示されるページ)にリンクする方法を理解するのに問題があります。

ユーザーがバックエンド管理者のページにバナーをアップロードして検索結果ページに表示できるように、バックエンドのページを検索結果ページに「リンクアップ」するためのヒントはありますか。

グーグルをしてWordpressのcodexでこのページを見つけました。 http://codex.wordpress.org/Creating_a_Search_Page 働いているようです。

任意の助けがいただければ幸いです。

1
John

ですから、私がよく理解していれば、特定のページを検索結果ページとして使用したいと思うでしょう。

検索ページにいるとき、現在のクエリはurl内の検索語によって作成されたものですが、特定のページを取得するにはそのページのクエリが必要なので、これは少し注意が必要です。

したがって、2つのクエリが必要です。これはパフォーマンスに関して理想的ではありません。おそらく、バナーをページにリンクする別の方法を使用すると、この問題をより効率的な方法で解決できます。

ただし、質問にお答えしましょう。

検索結果ページにいるとき、WordPressはsearch.phpテンプレートを使用して結果を表示します。 WordPressテンプレート階層 を参照してください。

search.phpが存在しない場合、テーマはindex.phpを使用して検索結果を表示しています。この場合、index.phpを複製してコピーの名前を変更しますsearch.php:このように特定の検索結果のテンプレート。

サードパーティが開発したテーマを使用している場合は、 子テーマ ですべてを行うことをお勧めします。この方法で、テーマを更新するときに変更が失われることはありません。

バナーをページにどのようにリンクするかは言わず、バナーを注目の画像としてアップロードすると仮定します。異なる方法で(たとえば、カスタムフィールドを使用して)、それに応じてコードを編集します。

search.phpを開き、バナーの使用を表示する場所:

global $post;
$post = get_page_by_path('search');
setup_postdata($post);
// now the page with slug 'search' is treated as it was the current page
// so retrieve the banner just like you do in normal page
// I'll use page featured image
the_post_thumbnail();
wp_reset_postdata();

ここで、ダッシュボードに移動してページを作成し、それに「スラッグ」「検索」を割り当てる必要があります。タイトルとして「検索」を使用すると、そのスラッグは自動的に割り当てられます。

最後に、そのページにバナーを追加します。

0
gmazzap