在开发 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 这么声名显赫的系统中出现,也着实让人有点惊喜。
-
WordPress企业主题 企业官网主题双语外贸主题模版企业网站,不仅是企业的门面,更是展示企业风采、推广产品与服务的窗口。在这个信息化时代,拥有一个精美的企业网站,就如同给企业穿上了一套得体的西装,让人眼前一亮。
-
WordPress 6.5 新功能 - 字体库字体库是 WordPress 6.5 的亮点之一
-
WordPress6.5新功能-声明式插件依赖在 WordPress 6.5 中,插件依赖变简单了
-
WordPress 6.5 新功能 - 支持 AVIFWordPress 6.5 新功能 - 支持 AVIF
-
WordPress 6.5移除区块样板菜单项的方法WordPress 6.5新增的区块样板菜单项,可将不同区块组合成一个新的区块模板,方便重复使用。
-
WordPress做多语言企业网站近期常用小伙伴问追格小编,有没有计划做双语WordPress企业官网主题。
暂无评论,抢个沙发...