如何根据当前角色加载CSS文件

时间:2021-07-25 作者:aggz

我已经创建了一个自定义角色(b2b),我正在尝试在“b2b”角色登录或管理员登录时加载css文件。我已经尝试了下面的代码,但无法正常工作。任何帮助或建议都将不胜感激。

提前谢谢你。

function testCss() {

$user = wp_get_current_user();

if ( $user->roles[0]==\'administrator\' || $user->roles[0]==\'b2b\' ) {


        // Add custom script.
        wp_enqueue_style(
            \'jupiterx-child\',
            get_stylesheet_directory_uri() . \'/assets/css/b2bstyle.css\'
        );


}

}

add_action(\'wp_enqueue_scripts\',\'testCss\', 11);

1 个回复
SO网友:Buttered_Toast

你的if 检查可能是php通知的结果,因为未登录用户没有角色,在这种情况下$user->roles[0] 将输出notice: array offest (简而言之)。

除此之外,您是否检查了控制台网络以查看/assets/css/b2bstyle.css 已加载,即使您看到状态404 你的方向是对的。

您的代码似乎是正确的,除了if 检查

我建议你这样做

function testCss () {
    // get user
    $user = wp_get_current_user();
    
    // check if user has the following roles (administrator OR b2b)
    if (in_array(\'administrator\', $user->roles) || in_array(\'b2b\', $user->roles)) {
        wp_enqueue_style(\'jupiterx-child\', get_stylesheet_directory_uri() . \'/assets/css/b2bstyle.css\');
    }
}
add_action(\'wp_enqueue_scripts\', \'testCss\', 11);
如果您检查控制台并转到网络,看到类似的内容

enter image description here

单击它以显示有关请求的更多信息,在标题下->;一般来说,第一行显示请求url,请检查是否正确

enter image description here

相关推荐

Problem in functions.php file

我正在尝试使用functions.php. 以下是我迄今为止所做的工作: <?php function blogroom() { wp_enqueue_style(\'bootstrap\', get_stylesheet_directory_uri() . \'/assets/lib/bootstrap/dist/css/bootstrap.min.css\'); wp_enqueue_style(\'loade