我试图创建一个自定义搜索结果页面,不仅搜索标题,还搜索自定义字段。 我一直在编写代码中的“创建搜索页面”页面,但出于某种原因,搜索结果使用了新的 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>
我已经使用codex给我的默认代码创建了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结果但链接到默认搜索结果页面的问题。 例如,在我完成搜索后,我会收到此网址:
http://localhost/?s=mysearchquery
任何想法是如何开始的?
谢谢
答案 0 :(得分:1)
searchpage.php是搜索页面的替代方案,如果要创建搜索结果页面,则需要创建search.php文件。
答案 1 :(得分:0)
您必须在searchpage.php文件的顶部添加以下行
/*
* Template Name: Search Results Page
* Description: Whatever you want to write here.
*/
现在,转到管理面板并创建一个新页面并为其指定标题,并从右侧的“页面属性”部分分配“搜索结果页面”模板。不要向页面添加任何内容。
现在,尝试搜索,它应该有用。
注意:如果用户在搜索框中“输入”某些内容并点击输入,则用户将无法登陆此页面。默认情况下会执行此操作 将他重定向到search.php页面。你只能降落 searchpage.php当用户点击了带有url的“超链接”时 如
<?php echo home_url( '/' ); ?>?page_id=8057