【问题标题】:Modifying query in Wordpress search在 Wordpress 搜索中修改查询
【发布时间】:2016-09-16 10:53:28
【问题描述】:

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

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

我已通读此文档 (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 中设置哪些参数。我怎样才能做到这一点?

【问题讨论】:

标签: php mysql wordpress


【解决方案1】:

要回答你需要设置哪些参数,你必须通读same page you mentioned。该页面定义了各种项目(帖子类型或类别)的参数,当您想要更改它时,您所要做的就是修改参数。

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

另外read through this 以了解有关循环的更多信息以及如何重置查询并执行新查询,然后您可以获得两个结果集并在您想要的时间和地点使用它们或组合它们。

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

【讨论】:

  • 据我了解:他有一个函数(查询扩展),给出一个词,它返回其他词(即足球返回“足球”,“团队运动”)。然后他想搜索所有这些关键字(但不是所有关键字都在同一个帖子中,每个单词/单词一次搜索)。因此,搜索“足球”、“足球”和“团队运动”,然后组合结果。
  • 理想情况下,最好发送逗号分隔的关键字数组并获取所有包含这些关键字的帖子。可以创建一个函数来准备此类查询或组合多个查询的结果集。
  • @Ivan 这正是我想说的。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-09
  • 1970-01-01
  • 2013-12-02
  • 2017-06-30
  • 2021-06-16
相关资源
最近更新 更多