WordPress搜索页面不能与$_GET或$_POST一起使用

时间:2012-12-29 作者:Matanya

我正在尝试创建一个常规搜索页面。我已经创建了一个搜索页面模板和一个新的搜索页面,并将表单的操作设置为此页面的URL。

当我直接访问搜索页面时,它会获取正确的模板,但当我尝试将表单发送到此URL时,无论是通过$\\u GET还是$\\u POST,我都会指向默认索引。php模板。

表单代码:

<form action="<?php echo get_permalink(359); ?>" method="GET">
               <input name="s" type="text" id="search_box">
               <input type="submit" value="submit" style="visibility:hidden;">      
           </form>
搜索页面代码:

<?php // Template Name: חיפוש 
get_header(); ?>
<div id="search_page">
<?php

$search = new WP_Query(array(\'s\'=>$_GET[\'s\']));

if ($search->have_posts() ) : while ( $search->have_posts() ) : $search->the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php the_excerpt();
endwhile; ?>
<!-- post navigation -->
<?php else: ?>
<!-- no posts found -->
<?php endif; ?>
?>  
</div><!--search_page-->
<?php
get_footer(); 

1 个回复
最合适的回答,由SO网友:Milo 整理而成

执行搜索时,默认查询不再是页面查询,而是搜索查询。请参阅template hierarchy 查看WP在这种情况下如何选择模板。将get var重命名为唯一的或过滤器search_template 覆盖WP的选择。

结束

相关推荐

Remove some pages from search

在我的网站上,我希望一些页面不能通过搜索表单进行查询(这样当我有类似www.ex.com/?s=banana的内容时,它们就不会出现)有没有一种方法可以从搜索结果页面中“删除”页面(而不是盲目地执行if Is\\u page(id),display:none的条件)