WordPress - 在个人资料页面删除"角色"

3

我刚开始学习创建WordPress插件,仍在尝试理解动作钩子或筛选钩子的概念。

我为“调解员”创建了自定义角色。我希望这个角色能够:
- 负责具有特定角色(例如订阅者)的用户。
- 能够更改用户密码。
- 无法更改其他用户的角色。

问题在于:为了能够更改其他用户的密码,调解员需要访问用户资料页面。但是,在用户资料页面上,调解员可以更改其他用户的角色。我可以通过更改wp-admin/user-edit.php来隐藏它,但我认为最好通过插件来完成。那么,如何使用插件隐藏/修改“角色”选择?

感谢您的帮助。

为了使它更清晰,我附上一张图片。 enter image description here

1个回答

2

没有任何钩子可以移除它。必须使用CSS和/或jQuery来解决。

在这里,CSS和jQuery几乎相同,您可以选择其中一个或另一个,或同时使用两者。

current_user_can必须根据您的角色/能力设置进行调整。

请注意,挂载点admin_head可以有后缀,因此它只会在特定的/wp-admin/WP-PAGE.php地址中运行。

add_action( 'admin_head-user-edit.php', 'so_13598192_remove_roles_dropbox' );

function so_13598192_remove_roles_dropbox()
{
    // Admins can edit that, exit without printing scripts
    if ( current_user_can( 'administrator' ) )
        return;
    ?>
        <style>
            label[for=role], #role
            {
                display:none;
            }
        </style>
        <script>
            jQuery(document).ready(function($)
            {     
                $('label[for=role]').parent().parent().remove();      
            });
        </script>
    <?php
}

下次请考虑在WordPress StackExchange上提出您的问题。 - brasofilo
这不完全是我想要的,因为JavaScript和jQuery无法在所有浏览器/媒体上运行。但这是一个有效的想法。谢谢你。还有,感谢你提供关于WP StackExchange的信息,我之前不知道它。:D - Martin Ivanovich
据我所知,而且我很喜欢黑掉管理员界面,**没有其他选择**(在答案中添加了相同的链接,这是呈现该字段的核心文件)。在WPSE见! - brasofilo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接