2011-07-25 81 views
4

我已经定制了一个主题,并且在使用多词查询的搜索结果中遇到了一些问题。网站是住在www.abetterworldbydesign.com搜索结果不显示在WordPress中的多个词搜索

Searching for a single word按预期工作。

Searching for multiple words应该返回结果显示空白结果。

下面的searchform.php代码。

<form id="searchform" name="searchform" method="get" action="<?php echo home_url(); ?>"> 
    <div> 
     <input type="text" id="s" name="s" /> 
     <input type="submit" id="searchsubmit" value="<?php esc_attr_e('Search', 'richwp'); ?>" /> 
    </div> 
</form> 

我在search.php中代码初始化WP_Query如下正好the code listed in the codex。完整代码为search.php on pastebin。您搜索的PHP

+0

也问在Wordpress的答案:http://wordpress.stackexchange.com/questions/24102/search-results-not-displaying-for-multiple-word-search –

+0

为什么不给搜索权力的人 - 谷歌。示例查询“Zero Energy Usage site:www.abetterworldbydesign.com”:http://www.google.com/search?sclient=psy&hl=zh-CN&source=hp&q=Zero+Energy+Usage+site:www.abetterworldbydesign.com&pbx=1&oq =零+能量+用法+网站:www.abetterworldbydesign.com&aq = f&aqi =&bav = on.2,or.r_gc.r_pw。&biw = 1400&bih = 912 – Igor

+0

@Igor - 用Google自定义搜索替换WordPress搜索将是解决方法我宁愿避免。主要缺点是要求在网站上使用Google品牌。 http://www.google.com/cse/docs/tos.html –

回答

3

我猜你需要解码你是从查询字符串中提取的搜索词,例如:$search_query[$query_split[0]] = urldecode($query_split[1]) 。虽然,你可能只是使用Wordpress的get_query_var函数而不是所有的代码。

+0

就是这样。做得很好。奇怪的是,WordPress文档没有说明这一点 - 想知道是否需要在WP的最新版本中进行更改,而不是在文档中进行更新。我现在会奖赏你的赏金,但Stack Overflow说我必须等3个小时。 –

+1

WordPress的Codex文档是一个wiki,所以任何人都可以添加到它,最好是对内容持怀疑态度。您使用的代码是一年前由另一个用户发布的(如果您登录,您可以查看页面历史记录),但我不确定它应该解决什么问题。 –

+1

好的。我用这个修补程序更新了WordPress Codex。 http://codex.wordpress.org/Creating_a_Search_Page#Preserving_Search_Page_Results_and_Pagination –

0

线16

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

尝试改变这种

$query_args = explode(" ", $query_string) 
+0

试过了。不用找了。我也尝试将search.php的第16行改为'$ query_args = explode(“+”,$ query_string);'但这并没有改变任何一个 –

+0

奇怪。我很确定这会工作。我会看看我能否看到其他任何东西。 – abney317

+1

可能不会做太多,但请检查该search.php的第42行 - 您的评论是注释掉php标记的结尾 – abney317