我在 WordPress 页面模板中有一个搜索表单。我想在与搜索表单相同的页面上显示结果,但我尝试的所有方法似乎都不起作用。我尝试将输入名称替换s
为search
as 以绕过 WordPress 的默认查询,将操作字段留空以及使用当前页面的永久链接get_permalink
和echo esc_url( get_permalink( get_page_by_title( 'Page_Template' ) ) )
,并编写自定义循环。我尝试的一切似乎要么抛出 404 page not found 错误,要么重定向到主页。
这是我正在使用的修改后的搜索表单和循环:
<form method="get" id="searchform" action="<?php echo esc_url( get_permalink( get_page_by_title( 'Page_Template' ) ) )?>">
<label for="s" class="assistive-text">Search</label>
<input type="text" class="field" name="search" id="search" placeholder="Search" />
<input type="submit" class="submit" name="submit" id="searchsubmit" value="Search" />
</form>
<?php
if ( isset( $_REQUEST[ 'search' ] ) ) {
// run search query
query_posts( array(
's' => $_REQUEST[ 'search' ],
'paged' => get_query_var('paged')
) );
// loop
if ( have_posts() ) : while ( have_posts() ) :
echo '<li>';
echo '<a href="'.the_permalink().'">'.the_title().'</a>';
echo '</li>';
endwhile; endif;
// return to original query
wp_reset_query();
}?>
此示例引发 404 page not found 错误。
任何帮助将不胜感激,我已经在这几个小时了,似乎无法得到它。提前致谢。