WordPress中的pre_comment_approved是一个用于在评论被核准之前对评论进行修改或验证的hook钩子。
该钩子可以用于执行一些重要的操作,例如:
1. 阻止某些评论被自动核准:通过在钩子回调函数中返回"spam"或"trash",可以将某些评论标记为垃圾或删除。
function prevent_auto_approval($approved, $commentdata) {
if ( is_user_logged_in() ) {
// 如果评论者是已登录的用户,则自动核准评论
return 1;
} else {
// 如果评论者是未登录用户,则将评论标记为垃圾
return "spam";
}
}
add_filter('pre_comment_approved', 'prevent_auto_approval', 10, 2);
2. 自定义评论核准逻辑:可以根据特定的条件自定义评论的核准逻辑。
function custom_approval_logic($approved, $commentdata) {
if ( $commentdata['comment_author_email'] == 'test@example.com' ) {
// 如果评论者的电子邮件为特定值,则自动核准评论
return 1;
} else {
// 否则,手动核准评论
return 0;
}
}
add_filter('pre_comment_approved', 'custom_approval_logic', 10, 2);
在以上示例中,我们使用了add_filter函数将pre_comment_approved钩子与自定义的回调函数关联起来。回调函数将接收两个参数,$approved表示评论是否已经核准,$commentdata是包含评论相关信息的数组。
回调函数必须返回评论的核准状态,可以返回1(已核准)、0(未核准)、"spam"(标记为垃圾)或"trash"(删除评论)。
注意:pre_comment_approved钩子只会在评论被自动核准之前被触发。如果通过其他方式手动核准评论,则不会触发该钩子。
0 个评论