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.
 */

现在,转到管理面板并创建一个新页面并为其指定标题并从右侧的页面属性部分分配“搜索结果页面”模板。不要在页面中添加任何内容。

现在,尝试搜索,它应该可以工作。

注意:如果用户在搜索框中“输入”了某些内容并按回车键,他将不会登陆此页面。默认情况下,此操作会将他重定向到 search.php 页面。只有当用户点击带有 URL 的“超链接”时,您才能登陆 searchpage.php

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