WordPress网站后台的【评论】除了管理员可以访问浏览外,其他角色如贡献者也可以访问查看,这显然不合理且会泄露评论用户的隐私,因为谁中除了有评论内容外还有评论者的邮箱、IP或其它自定义扩展的信息。所以修改WordPress后台评论的访问权限很有必要,这里建议在后台对非管理员角色移除【评论】菜单,然后禁止非管理员角色访问。
实现代码和修改方法:
1、在当前主题的functions.php文件添加代码:
1 2 3 4 5 6 | function remove_edit_comments_menu() { if ( ! current_user_can( 'manage_options' ) ) { remove_menu_page( 'edit-comments.php' ); } } add_action( 'admin_menu', 'remove_edit_comments_menu' ); |
作用:通过current_user_can函数判断当前登录用户是否拥有管理权限,如果没有,则不显示左侧的【评论】入口。
2、接着在functions.php文件继续添加代码:
1 2 3 4 5 6 7 | function restrict_edit_comments_page() { if ( ! current_user_can( 'manage_options' ) && strpos( $_SERVER['REQUEST_URI'], '/wp-admin/edit-comments.php') !== false ) { wp_redirect( admin_url() ); exit; } } add_action( 'admin_init', 'restrict_edit_comments_page' ); |
作用:当非管理员欲访问后台的评论页面时,自动跳转到WordPress后台首页。因为步骤1只是把评论页面的入口隐藏,直接在浏览器输入评论页面链接还是可以访问的。
如果不想跳转,直接不显示评论,可以用下面的函数替换上面步骤2的函数:
1 2 3 4 5 6 7 8 | function edit_comments_page_blank( $clauses, $wp_query ) { global $wpdb; if( ! current_user_can( 'manage_options' ) ) { $clauses['where'] .= " AND {$wpdb->prefix}comments.comment_type != 'comment'"; } return $clauses; } add_filter( 'comments_clauses', 'edit_comments_page_blank', 10, 2 ); |
作用:当非管理员欲访问后台的评论页面时不显示评论。