纯代码如何实现WordPress搜索包含评论内容?

WordPress国产主题推荐

WordPress自带的搜索默认情况下是不包含评论内容的,不过有些WordPress网站评论内容比较多,而且也比较有用,所以想要让用户在搜索时也能够同时搜索到评论内容,那么应该怎么做呢?

网络上很多教程都是推荐安装SearchWP插件,然后在设置中勾选“评论”,这样就可以搜索到文章评论内容了。

纯代码如何实现WordPress搜索包含评论内容?-第1张-boke112百科(boke112.com)

其实,我们只需要将以下代码添加到当前主题的functions.php文件中并保存更新文件即可实现WordPress搜索包含评论内容。

/**
* 纯代码如何实现WordPress搜索包含评论内容? - boke112百科
* https://boke112.com/article/wordpress-search-comment.html
*/
add_action('posts_search','wp_search_comment',2,2);
function wp_search_comment($search, $query){
global $wpdb;
if ($query->is_main_query() && !empty($query->query['s']) && !is_admin()) {
$sql = " OR EXISTS (SELECT comment_ID FROM {$wpdb->comments} WHERE comment_post_ID={$wpdb->posts}.ID and comment_content like %s)";
$like = '%' . $wpdb->esc_like($query->query['s']) . '%';
$search .= $wpdb->prepare($sql, $like);
}
return $search;
}

以上代码经过boke112百科在WordPress 6.53版本+PHP8.0测试了JianYue主题、Twenty Twenty-Four主题,都可以搜索到评论内容,包括自定义文章类型的评论内容。

不过如果你的WordPress网站根据『实现WordPress默认站内搜索伪静态化的方法』一文的操作,将WordPress站内搜索变成了伪静态,那么上述代码就失效了,也就是无法搜索到评论内容了。

文章创作不易,期待您的评分

本文地址:https://boke112.com/article/wordpress-search-comment.html

版权声明:本文为原创文章,版权归 boke112百科 所有,欢迎分享本文,转载请保留出处!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请联系我们,确认后马上更正或删除,谢谢!
wu