WordPress后台禁止非管理员用户查看网站评论的方法和代码
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 ); |
作用:当非管理员欲访问后台的评论页面时不显示评论。
© 版权声明
转载请注明来自白芸资源网以及原文地址。
本站不敢保证内容的可靠性,内容仅供小范围学习与参考,禁止用于商业、盈利或其它非法用途以及大范围传播,您需在学习与参考完毕后从您的个人存储空间彻底删除,因您滥用而造成的损失本站不承担法律责任。
本站部分内容可能源于互联网,版权争议与本站无关,如有侵权可联系站长处理,敬请谅解!
请您合法使用本站资源。
THE END