WP_QUERY搜索不接受多个单词的关键字

时间:2016-04-21 作者:Bhuvnesh Gupta

我正在使用WP_Query 搜索结果,但这不包含多个单词AND 活动

这是我的密码

$searched_string = $_POST[\'search\'];
$the_query = new WP_Query( 
        array( 
            \'post_type\' => \'press-release\',
            \'posts_per_page\' => -1,
            \'s\' => $searched_string 
        ) 
    );
当我搜索apple Introducts(苹果介绍)时,它会获取所有标题为apple(苹果介绍)或内容为apple(苹果介绍)或内容为apple(苹果介绍)的结果

而我希望所有的单词都是一个组合。

请帮忙,谢谢。

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

Wordpress还提供了更多过滤器,可以使用过滤器更改wp查询。如果这对您有帮助的话,我需要什么逻辑来使用过滤器覆盖下面的代码示例查询。

add_filter( \'posts_where\', \'posts_where_condition_search\' );
 $wp_query = new WP_Query( 
        array( 
            \'post_type\' => \'press-release\',
            \'posts_per_page\' => -1,
        ) 
    );  
 remove_filter( \'posts_where\', \'posts_where_condition_search\' );    

 function posts_where_condition_search( $where ){

    $search_string = \'test\';

    if( isset( $_POST[\'search\']) && !empty($_POST[\'search\']) )
    $search_string = $_POST[\'search\'];

    if( empty($search_string) )
    return $where;
    // add your multiple condition here and write your custom filter

    $where .= " AND (((wp_posts.post_title LIKE \'%$search_string%\') OR (wp_posts.post_content LIKE \'%$search_string%\'))) ";
    //$where .= " AND (((wp_posts.post_title LIKE \'%$search_string%\') OR (wp_posts.post_content LIKE \'%$search_string%\'))) ";
    //$where .= " AND (((wp_posts.post_title LIKE \'%$search_string%\') OR (wp_posts.post_content LIKE \'%$search_string%\'))) ";

   return $where;
}

https://codex.wordpress.org/Class_Reference/WP_Query#Filters

相关推荐

Search results for ACF data

是否可以编写查询以仅从一个自定义字段中搜索数据?我有一个名为“讲座”的CPT,我只想搜索名为“关键字”的自定义字段中的数据,我有:<?php $args = array( \'post_type\' => \'lectures\', \'order\' => \'ASC\', \'posts_per_page\' => -1, \'