在开发 WordPress 主题和 WordPress 插件时,总是免不了和文章评论打交道。这两天就遇到一个需求【在小程序里审核管理文章评论】,无疑这就涉及到如何修改评论的状态了。
从 WordPress 的官方文档,找到了修改评论状态的函数:wp_set_comment_status
wp_set_comment_status( int|WP_Comment $comment_id, string $comment_status, bool $wp_error = false ): bool|WP_Error
函数命名很清晰,基本一看就知道怎么用了。现在只需要搞清楚 $comment_status 有哪些合规的值就可以了。根据 WordPress 文档,评论状态可以是: 'hold', 'approve', 'spam', or 'trash'。
一个疑问出现了,之前在学习 《WordPress 用户评论审核通过,发个通知给用户》 和 《WordPress钩子:监听评论状态变化 transition_comment_status》时,大概了解过评论的状态有 unapproved,approved,spam,trash 四种。怎么两个地方对不上啊?
干脆做个实验,在 WordPress 后台,把一个评论依次设置为 'hold', 'approve', 'spam', or 'trash' ,使用 transition_comment_status 观察评论状态的变化,以及数据库中值得变化。
最终,得出的结论是:
【wp_set_comment_status 函数参数中的 'hold' 】等于【评论相关钩子中的 unapproved】等于【数据库中的'0'】,均表示评论【待审】。
【wp_set_comment_status 函数参数中的 'approve' 】等于【评论相关钩子中的 approved】等于【数据库中的'1'】,均表示评论【已批准】。
'spam' 在三个地方一致,表示评论被标记为【垃圾】。
'trash' 在三个地方一致,表示评论已被放到【回收站】中。
我们再看一下,wp_set_comment_status 函数的源码:
function wp_set_comment_status( $comment_id, $comment_status, $wp_error = false ) {
global $wpdb;
switch ( $comment_status ) {
case 'hold':
case '0':
$status = '0';
break;
case 'approve':
case '1':
$status = '1';
add_action( 'wp_set_comment_status', 'wp_new_comment_notify_postauthor' );
break;
case 'spam':
$status = 'spam';
break;
case 'trash':
$status = 'trash';
break;
default:
return false;
}
......
return true;
}
原来,在函数内部偷偷作了转化……
这种不一致,虽然无伤大雅,但是在 WordPress 这么声名显赫的系统中出现,也着实让人有点惊喜。
-
FluentSMTP一款功能强大且免费的WordPress SMTP插件FluentSMTP是一款功能强大且免费的SMTP插件,它支持为WordPress配置多个SMTP发送服务器。
-
追格小程序V2.5.8更新发布追格小程序是一款采用积木式理念的微信小程序构建框架,它巧妙融合了Uniapp与WordPress技术,打造出一个开源且无加密限制的开发环境。
-
WordPress必备:使用wp_get_theme()函数获取当前主题详情在WordPress中,wp_get_theme() 函数用于获取当前启用的主题或指定主题的信息。这个函数返回一个 WP_Theme 对象,该对象包含了主题的详细信息,如主题名称、版本、模板目录、样式表目录等。
-
Redis Object Cache WordPress对象缓存插件Redis Object Cache是一款功能强大、易于使用的WordPress对象缓存插件。通过合理配置和优化,可以显著提高网站的访问速度和用户体验。
-
如何禁用WordPress自动生成的768、1536、2048像素及-scaled缩略图追格小编分享过两篇关于禁止自动裁剪微缩的内容,有兴趣的同学可以看看
-
Table Block by RioVizual 专为WordPress Gutenberg编辑器设计的表格插件Table Block by RioVizual是一款功能多且易于使用的WordPress表格插件。它提供了丰富的定制选项和预设计模板库,使得创建和编辑表格变得轻松快捷。
暂无评论,抢个沙发...