2016-09-16 78 views
-2

我试图将查询扩展软件与Wordpress集成,但wordpress搜索引擎是AND搜索器(返回包含查询中所有单词的内容,因此更广泛的是查询更少的结果返回)。 因为这个原因,当我使用具有扩展功能的查询时,搜索器返回的结果更少。 我想修改搜索的行为,并将其变成更像是搜索者的东西。在Wordpress搜索中修改查询

例子: 对于查询“物联网,物联网”,我想那些内容“物联网”的帖子,或“物联网,或两者

我已经通过这个阅读。文件(https://codex.wordpress.org/Class_Reference/WP_Query),我试图用这样的事情:

add_action('template_redirect', 'hooks_setup' , 20); 
function hooks_setup() { 
    if (! is_home()) //<= you can also use any conditional tag here 
     return; 
    add_action('__before_loop'  , 'set_my_query'); 
    add_action('__after_loop'  , 'set_my_query', 100); 
} 

function set_my_query() { 
    global $wp_query, $wp_the_query; 
    switch (current_filter()) { 
     case '__before_loop': 
      //replace the current query by a custom query 
      //Note : the initial query is stored in another global named $wp_the_query 
      $wp_query = new WP_Query(array(
       'post_type'   => 'post', 
       'post_status'  => 'publish', 
       //others parameters... 
      )); 
     break; 

     default: 
      //back to the initial WP query stored in $wp_the_query 
      $wp_query = $wp_the_query; 
     break; 
    } 
} 

但我不知道我需要在wp_query设置哪些参数我怎样才能做到这一点

+0

你还没有问过问题,只是说明你想要做什么。请参阅[如何提出一个好问题](http://stackoverflow.com/help/how-to-ask)。 –

回答

1

要回答什么参数吗?需要设置,你必须重新设置广告通过same page you mentioned。各种项目(帖子类型或类别)的参数在此页面上定义,当您想要更改时,您只需修改参数即可。

如果你不知道你想要做什么查询,我认为它很难为人们提供帮助。如果您获得的结果较少,则可以进一步打开查询或在2个查询中获取结果。通读这个页面,当人们想要获得不同类型的数据,而不是所有的东西都在循环中时,你会发现它很常见。

read through this了解更多关于循环以及如何重置查询和做一个新的,那么你可以获得两个结果集并使用它们或将它们组合在你想要的时间和地点。

只是给你一个以s为参数的帖子进行字符串搜索的例子same page用连字符前缀一个词将排除与该词匹配的帖子。例如,'pillow -sofa'将返回包含'枕头'但不包含'沙发'的帖子(从版本4.4开始可用)。

+0

从我的理解:他有一个函数(查询扩展)给出一个单词,它返回其他单词(即足球回归“足球”,“团队运动”)。然后,他希望搜索所有这些关键字(但不是所有这些关键词都在同一篇文章中,每个词/文字一次搜索)。因此,搜索“足球”,“足球”和“团队运动”,然后结合结果。 – Ivan

+0

理想情况下,最好发送逗号分隔的关键字数组,并获取具有这些关键字的所有文章。人们可以创建一个函数来准备这样的查询或组合多个查询的结果集。 –

+0

@伊万这正是我想说的。谢谢! – dtd93