如何让WordPress的搜索在搜索的时候也支持去查询文章的评论中是否包含搜索关键词?

我们平时使用WordPress做搜索的时候,默认的只是去查询文章的title和content,但是我在最近做一个WordPress问答主题的时候,因为很多关键的内容其实是在评论中的,所以想着是否调整一下WordPress默认的搜索功能,让其能支持对评论内容的查询,如果评论中也包含搜索关键词,也作为搜索结果输出出来

如果您的搜索使用的是WordPress默认的搜索的话,可以把下面的代码放到您的functions.php中来实现,但是可能对于自定义搜索不起作用。

/** 
* WordPress搜索文章支持查询评论 
* https://www.wpshequ.cn 
*/ 
function sort_by_sticky( $query ) {
    if($query->is_search && !empty($query->query['paged'])){
        $search = htmlspecialchars($query->query['s']);
        global $wpdb;
        $querystr = "
        select $wpdb->posts.ID
                   from $wpdb->posts
        left join $wpdb->comments
                   on $wpdb->comments.comment_post_ID = $wpdb->posts.ID
                   where $wpdb->posts.post_content like \"%$search%\"
                   or $wpdb->comments.comment_content like \"%$search%\"
                   or $wpdb->posts.post_title like \"%$search%\"
                   or $wpdb->comments.comment_author like \"%$search%\"
                   group by $wpdb->posts.ID
        ";
        $match_posts = $wpdb->get_results($querystr, OBJECT);
        $query->set('s', '');
        $match_post_ids = array();
        foreach($match_posts as $match_post){
            $match_post_ids[] = $match_post->ID;
        }
        $query->set('post__in', $match_post_ids);
    }
}
add_action( 'pre_get_posts', 'sort_by_sticky' );
© 版权声明
THE END
喜欢就支持以下吧
点赞14
分享
相关推荐
  • 暂无相关文章
  • 评论 抢沙发