0

タイトルだけでなくカスタム フィールドも検索するカスタム検索結果ページを作成しようとしています。私はコーデックスの「検索ページの作成」ページを調べてきましたが、何らかの理由で、実行された検索結果が新しいsearchpage.phpコードを使用しています。

私が行ったことは、次のコードで searchform.php ページを作成することです: (新しい検索テンプレートを使用してページを追加したため、page_id=8057 を追加したことに注意してください。)

    <form role="search" method="get" id="searchform" action="<?php echo home_url( '/' ); ?>?page_id=8057">
  <div><label class="screen-reader-text" for="s">Search for(custom):</label>
    <input type="text" value="" name="s" id="s" />
    <input class="sprites" type="submit" id="searchsubmit" value="Search" />
  </div>
</form>

そして、コーデックスが提供するデフォルトのコードでsearchpage.phpを作成しました:

<p>Search Results:</p><BR>
<?php get_search_form(); ?>
       <?php
global $query_string;

$query_args = explode("&", $query_string);
$search_query = array();

foreach($query_args as $key => $string) {
    $query_split = explode("=", $string);
    $search_query[$query_split[0]] = urldecode($query_split[1]);
} // foreach

$search = new WP_Query($search_query);
?>
<?php
global $wp_query;
$total_results = $wp_query->found_posts;
?>

私はまだコードとクエリを調整していませんが、最初に検索フォームに searchpage.php の結果が表示されず、デフォルトの検索結果ページにリンクしているという問題を解決したいと思います。たとえば、検索を行った後、次の URL を受け取ります。

http://localhost/?s=mysearchquery

これを開始する方法はありますか?

ありがとうございました

4

2 に答える 2

1

searchpage.php は検索ページの代替手段です。検索結果ページを作成する場合は、代わりに search.php ファイルを作成する必要があります。

于 2013-01-26T18:59:57.107 に答える
0

searchpage.php ファイルの先頭に以下の行を追加する必要があります。

/*
 * Template Name: Search Results Page
 * Description: Whatever you want to write here.
 */

次に、管理パネルに移動し、新しいページを作成してタイトルを付け、右側のページ属性セクションから「検索結果ページ」テンプレートを割り当てます。ページにコンテンツを追加しないでください。

さて、検索してみてください。うまくいくはずです。

: ユーザーが検索ボックスに何かを「入力」して Enter キーを押した場合、ユーザーはこのページに到達しません。このアクションは、デフォルトで彼を search.php ページにリダイレクトします。ユーザーがURLの「ハイパーリンク」をクリックした場合にのみ、searchpage.phpに着陸できます

<?php echo home_url( '/' ); ?>?page_id=8057
于 2013-10-16T18:31:35.667 に答える