【问题标题】:Remove WordPress capabilities from users who no longer have the role从不再拥有该角色的用户中删除 WordPress 功能
【发布时间】:2020-11-27 21:21:45
【问题描述】:

多年来,我的 WordPress 网站经历了多个会员插件,每次更改我都创建了新的自定义用户角色。我今天早上通过解决另一个问题(谢谢,Prasad K)发现,即使我删除了一个角色并将用户重新分配给一个新角色,之前角色的功能可能仍然存在。

例如,我的一位用户在他们的 wp_usermeta 中显示了这一点:'a:2:{s:10:"subscriber";b:1;s:8:"new_lead";b:1;}'

我至少有 4 年没有担任订阅者角色了。其他用户有更多不存在的添加。

当角色不再存在时,从用户那里删除这些多余功能的最佳做法是什么?

编辑:

很遗憾,用户角色编辑器无法查看角色/功能。免费版和付费版都无济于事。还有其他建议吗?

谢谢

布拉德

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    更新

    下载User Role Editor

    添加 订阅者 角色。然后转到用户并将具有订阅者的用户更新为您也想更改的角色。

    有关更改用户角色的详细方法,请参阅this link

    或者

    您可以通过 phpmyadmin 编辑角色。查看this link,特别是获取用于修改角色的sql查询的答案,然后我们只需通过函数或更高级的SQL查询创建foreach()循环,以便在phpmyadmin中为每个具有该功能的用户运行的“订阅者”到您想要的替代角色。注意:在进行任何更改之前应备份数据库!

    【讨论】:

    • 嗨@Aliqua,不幸的是 remove_role() 不起作用。当我用下面的代码显示所有角色时。订阅者等不出现。 global $wp_roles; $roles = $wp_roles->roles; // print it to the screen echo '<pre>' . print_r( $roles, true ) . '</pre>';
    • 嘿@Aliqua。我已联系用户角色编辑器,正在等待回复。我持怀疑态度,我认为插件不会识别角色,因为它们没有出现在上面的 footer.php 脚本中。收到回复后我会跟进。
    • 嘿@Aliqua,用户角色编辑器回复说所有版本的插件都能够显示和删除未使用的角色。感谢您的帮助。
    • 我的荣幸。很高兴能帮上忙。编码愉快!
    • 嘿@Aliqua。我尝试了用户角色编辑器的免费和许可版本,但都无法提供帮助。还有其他建议吗?
    猜你喜欢
    • 2018-09-13
    • 2022-06-10
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    • 2020-06-27
    • 2021-05-07
    • 2014-09-05
    • 1970-01-01
    相关资源
    最近更新 更多