Wordpress:如果User Role = CSS-Class那么显示:无

时间:2018-06-18 10:13:45

标签: wordpress

对于具有用户特定内容的客户项目,我有一个(希望很小)问题。我需要一个函数将".user-role { display: none !important; }"添加到inline-css中,以确保特定的用户角色无法看到特定的html对象。因此,如果用户角色为“abc-user”,则必须为".abc-user { display: none !important; }"

这可能还是有更好的解决方案来解决这个问题?由于网站与视觉作曲家合作(不幸的是),使用短代码几乎是不可能的,因为用户看不到完整的行。

我期待着你的回答! :)

来自德国的问候, 最大

3 个答案:

答案 0 :(得分:1)

在functions.php中使用此代码

add_action('wp_head', 'hidingCss');
function hidingCss() {
    if (is_user_logged_in()) {
        $user = wp_get_current_user();
        $role = (array) $user->roles;
        //csss-class means user roles
        if($role[0] == 'CSS-Class'){ 
            //.abc-user is a class which you are targeting for hide any element
            echo '<style>.abc-user { display: none !important; }</style>';  
        }
    } else {
        return true;
    }
}

答案 1 :(得分:1)

我为可能感兴趣的任何人找到了以下解决方案。 谢谢@Aki的帮助!

add_action('wp_head', 'hidingCss');
function hidingCss() {
    if (is_user_logged_in()) {
        $user = wp_get_current_user();
        $role = (array) $user->roles;
        { 
            //.abc-user is a class which you are targeting for hide any element
            echo '<style>.'.$role[0].' { display: none !important; }</style>';
        }
    } else {
        return true;
    }
}

答案 2 :(得分:0)

在这里检查角色可能是理想的解决方案,但通常情况下,检查能力是有利的。它提供了一种更简单,更强大的方法来管理用户在网站上可以做或不能做的事情。

如果我们只希望一个角色可以使用或看到功能,则绝对可以使用上面介绍的两种解决方案。但是,如果您需要所有具有特定功能的用户-例如,能够上传文件(包括角色:作者,编辑者和管理员),则可以尝试使用类似的方法。

function hidingCss() {
  if (is_user_logged_in() && current_user_can('upload_files')) {
    echo '<style>.abc-user { display: none !important; }</style>';
  } 
 }

 add_action('wp_head', 'hidingCss');`

通过这种方式,每个具有upload_files功能的角色都会在标头中回显此css,而不是单个角色。

显然,我们可以使用自己的功能来创建自己的角色,以进一步扩展并使其更强大。