将管理面板部分限制为用户

时间:2018-12-03 作者:dvn22

我已经了解了如何从Administros以外的用户禁用wordpress admin菜单项。我现在想要实现的是,每个用户只能访问其用户页面(仅“您的个人资料”),并且只能编辑部分详细信息,例如,我不希望用户更改其电子邮件,但他可以更改其昵称等。这可能吗?

1 个回复
SO网友:Frank P. Walentynowicz

将以下内容添加到functions.php 当前主题的(首选子主题!):

CSS solution:

function no_email_changes_in_profile() {
    $screen = get_current_screen();
    if (\'profile\' == $screen->base && !current_user_can(\'manage_options\')) {
        echo \'<style>
input#email {
    pointer-events: none;
}
</style>\';
    }
}
add_action(\'admin_head\', \'no_email_changes_in_profile\');

jQuery solution:

function no_email_changes_in_profile() {
    $screen = get_current_screen();
    if (\'profile\' == $screen->base && !current_user_can(\'manage_options\')) {
        echo "<script>
jQuery(document).ready(function($) {
    $(\'#email\').prop(\'readonly\', true);
});
</script>";
    }
}
add_action(\'admin_head\', \'no_email_changes_in_profile\');
这将禁用除管理员以外的所有用户在配置文件管理页面上编辑“电子邮件”字段。

相关推荐

如何从wp-admin/edit.php重定向到特定定制帖子类型的前端页面?

我正在基于Wordpress构建一个非常小的web应用程序。为此,我为用户可以在应用程序中管理的项目创建了自定义帖子类型。我已经创建了一个非常漂亮、优化的概览页面作为前端页面。然而,为了节省开发时间,编辑每个项目仍然在后端进行。后端中的某些操作(即删除项目)会将用户带到后端中的项目概述页面(/wp-admin/edit.php?post_type=my_item_post_type) 而不是我漂亮的前端页面。我想防止这种情况发生,这样当用户/wp-admin/edit.php?post_type=my_i