WordPress的hook钩子get_default_comment_status用于获取默认的评论状态,即发布新文章时评论的默认状态。
使用方法如下:
1. 添加钩子函数:
function custom_get_default_comment_status($comment_status, $post_type) {
// 在这里添加自定义的逻辑
// 返回修改后的评论状态
return $comment_status;
}
add_filter('get_default_comment_status', 'custom_get_default_comment_status', 10, 2);
2. 在钩子函数中,我们可以添加自定义的逻辑来修改默认的评论状态。函数接受两个参数:
- $comment_status:原始的评论状态,默认是 'open',表示开放评论;也可以是 'closed',表示关闭评论。
- $post_type:当前文章的类型。
3. 在钩子函数中,我们可以根据需要判断当前文章的类型、用户角色等信息,来决定是否修改默认的评论状态。例如,我们可以根据用户角色来判断是否允许评论,默认情况下只允许管理员和编辑发布的文章可以评论,其他用户发布的文章不允许评论:
function custom_get_default_comment_status($comment_status, $post_type) {
if ($post_type === 'post') {
// 获取当前用户角色
$current_user = wp_get_current_user();
$user_roles = $current_user->roles;
// 如果当前用户不是管理员或编辑,则不允许评论
if (!in_array('administrator', $user_roles) && !in_array('editor', $user_roles)) {
$comment_status = 'closed';
}
}
return $comment_status;
}
add_filter('get_default_comment_status', 'custom_get_default_comment_status', 10, 2);
在上述示例中,我们首先判断当前文章类型是否是'post'(文章类型为'post'),然后获取当前用户的角色,如果用户角色既不是管理员('administrator')也不是编辑('editor'),则将评论状态修改为'closed'(关闭评论)。
4. 最后,使用add_filter函数将钩子函数添加到'get_default_comment_status'钩子上。第一个参数是钩子名称,第二个参数是钩子函数名称,第三个参数是优先级(数字越小,优先级越高),第四个参数是函数接受的参数个数。
通过以上方法,我们可以根据需要自定义默认的评论状态,实现更灵活的评论管理。
0 个评论