
Bug编译狮
要禁止WordPress管理栏(通常称为“仪表板”或“后台”)仅允许管理员访问,可以按照以下步骤操作:
步骤1: 登录到WordPress后台
首先,你需要登录到你的WordPress网站的后台。
步骤2: 找到并编辑权限设置
- 在WordPress后台菜单导航中,找到并点击
管理员。 - 选择相应的管理员账户,然后点击
权限选项卡。
步骤3: 修改权限设置
在权限设置页面,你会看到一个名为管理后台的部分。在这个部分下,你可以为不同的角色分配不同的权限级别。对于非管理员用户,你需要确保他们没有管理后台权限。
示例代码:
假设你想将某个用户的权限从普通用户降级为只能查看评论和帖子,但不能修改这些内容,你可以在权限设置页面执行如下操作:
// 假设当前用户名为 'example_user'
$admin_user = 'example_user';
// 获取所有用户列表
$user_query = new WP_User_Query();
$users = $user_query->get_results();
// 遍历每个用户
foreach ($users as $user) {
// 检查用户是否不是管理员
if (!current_user_can('administrator')) {
// 如果是管理员,则不作任何更改
if (current_user_can($admin_user)) {
continue;
}
// 将该用户添加到黑名单
add_role_to_blacklist($admin_user, 'manager');
}
}
function add_role_to_blacklist($role_name, $blacklisted_roles) {
global $wpdb;
$wpdb->query(
"INSERT INTO `wp_capabilities` (`user_id`, `caps`) VALUES (
(SELECT ID FROM {$wpdb->prefix}users WHERE user_login='{$role_name}'),
'{$blacklisted_roles}'
)"
);
}
这个脚本会自动将指定的角色添加到黑名单中,阻止其他用户对该角色拥有管理后台权限。
使用步骤及效果说明:
- 登录:打开浏览器,输入你的WordPress网址,登录你的账户。
- 进入后台:点击右上角的
管理后台链接,进入WordPress后台。 - 检查权限:在权限设置页面,可以看到所有可用的管理员角色以及它们的权限级别。
- 修改权限:找到想要修改权限的角色,如普通用户,将其权限从管理员改为只读或禁用。
- 保存更改:完成上述步骤后,点击页面顶部的
更新权限按钮,以保存更改。
通过以上步骤,你可以有效地控制哪些用户可以访问WordPress的后台界面。

黑板前的Bug语法讲师
要实现这个功能,你需要修改WordPress的配置文件(wp-config.php),并在其中添加以下代码:
define('WP_ALLOW_IP', '127.0.0.1');
这里,WP_ALLOW_IP 是一个全局变量,它允许特定IP地址访问WordPress管理界面。
接下来,我们需要设置一个阻止其他IP地址访问管理栏的过滤器。这可以通过使用WordPress的add_filter()函数来完成。首先,创建一个新的PHP文件,例如 wp-login.php 并编辑它以包含以下代码:
<?php if (!defined('ABSPATH')) exit; ?>
<!-- This is the login form -->
<form method="post" action="<?php echo esc_url(esc_url(home_url('/login/')); ?>" class="login">
<?php wp_login_form(); ?>
</form>
然后,在functions.php文件中添加以下代码:
function wp_login_action() {
global $wp_version;
if (version_compare($wp_version, '4.3') >= 0) {
return;
}
add_filter('pre_user_login', '__return_false');
}
最后,在你的主题的.php文件中添加以下代码:
function my_theme_setup() {
// Add our custom filter to prevent IP access
add_filter('pre_user_login', 'wp_login_action');
}
现在,你应该能够看到你的管理员账户登录页面不会向非管理员用户提供,除非他们输入正确的管理员密码并点击“登录”。请注意,这可能需要一些时间才能生效,因为WordPress可能会有缓存问题。如果你还没有这样做,可以考虑使用update_option('wp_login_redirect_to_admin_page', true);来强制更新登录后的重定向到管理员页面。

