用户权限 - 用户角色触发代码 (Wordpress)

Posted

技术标签:

【中文标题】用户权限 - 用户角色触发代码 (Wordpress)【英文标题】:User permission - triggering code on user role (Wordpress) 【发布时间】:2011-01-05 10:52:44 【问题描述】:

我正在用 php 开发一个自定义插件,因此现有插件无法使用。我想要实现的是我想在帖子中为某些用户显示不同的 url。对于在 wordpress 中注册、联系我并获得“批准”的用户。我想设置这个额外的用户配置文件字段,以便我可以在条件中使用此字段。因此,没有此字段或此字段中没有正确值的客人和用户将获得 url1 而其他的 url2。

要求

仅限具有管理员角色的用户 可以创建/编辑额外的用户配置文件字段 所有其他用户

我知道如何在 Wordpress 中添加额外的用户个人资料字段(请参阅下面的链接),但我不知道如何将该字段的编辑限制为给定角色的用户以及具有管理员角色的用户如何创建/编辑这适用于所有用户。在我看来,我必须在 wordpress 仪表板/用户/新用户和/或仪表板/用户/作者和用户下添加新代码。

我做了一些谷歌搜索,发现很少有关于如何添加额外用户个人资料字段的网站

Adding and using custom user profile fields User Contact Fields in WordPress 2.9 Add Data to User Field in WordPress

在我看来Adding and using custom user profile fields 几乎是我想要做的,但我仍然不知道如何管理“只有管理员”才能做到这一点。

【问题讨论】:

您是否编写过任何代码来帮助您入门?还是您希望代码完整? @Crises of Identity:我更新了我的问题。到目前为止我没有任何代码。如果有人给我任何提示或完整代码,我很高兴。我将学习两种方式,因为我最终需要理解代码。 为什么您认为应该有一种方法可以在不成为管理员的情况下添加额外的用户配置文件字段?对我来说,这听起来像是一个管理功能,而且您正在寻找安全漏洞,我们通常不会提供帮助。另外,您要问什么样的编程问题?现在,如果有的话,这看起来像是 SuperUser 的工作。 @David Thornley:现在我也看到了评论通知系统的用处。 投票重新开放。还进行了编辑以在编程上下文中明确说明问题,并阐明确切的问题(即,它是关于制作仅适用于管理员的代码) 【参考方案1】:

这个怎么样:

$ID="2";
$user = new WP_User($ID);
if ($user->wp_capabilities['administrator']==1) 
    //code here

查看这个关于user capabilities for wordpress的链接

上面的内容,以及您提供的链接,可能是这样的:

function my_show_extra_profile_fields( $user ) 
    if ($user->wp_capabilities['administrator']!=1) 
        return false;
     ?>
    <h3>Extra profile information</h3>

    <table class="form-table">

        <tr>
            <th><label for="twitter">Twitter</label></th>

            <td>
                <input type="text" name="twitter" id="twitter" value="<?php echo esc_attr( get_the_author_meta( 'twitter', $user->ID ) ); ?>" class="regular-text" /><br />
                <span class="description">Please enter your Twitter username.</span>
            </td>
        </tr>

    </table>
<?php 

【讨论】:

@jolierouge:我更新了这个问题。我认为这不是很清楚,所以每个人都可以理解我想要编码的内容。我会看看你的回答。谢谢。 嘿伙计,我不能为你编写整个代码,但看起来你的问题的核心已经解决了。至少,如何检查他们是否是管理员。也许您应该针对另一个解决方案打开一个新问题,即不要只对出现的每个新问题都编辑这个问题,而是将其留在这里以供其他寻求类似解决方案的人使用。 @jolierouge:我的所有要求都在原帖中。也许不是那么清楚。由于各种原因,我的原始帖子被其他人编辑过,在我看来,它造成了更多的混乱。老实说,我不知道该怎么办。解决我的问题的非常重要的部分是我在哪里使用这段代码。需要在 ADMIN 编辑用户配置文件时使用。

以上是关于用户权限 - 用户角色触发代码 (Wordpress)的主要内容,如果未能解决你的问题,请参考以下文章

将用户转发到 Wordpress 中的自定义仪表板

深度解析RBAC用户-角色-权限设计方案,以及核心逻辑代码的讲解

java web的用户角色权限管理是如何实现的?

oracle中如何赋予该用户CONNECT、RESOURCE、DBA身份

后台用户角色权限管理系统

Oracle 说明用户、权限和角色的关系,以及用户权限的管理有哪些?