如果按特定角色向每个人发布不同的css

时间:2021-03-08 作者:ANdy

所以我找了很多,但找不到解决办法
我发现的每个解决方案都只是将css更改为特定的角色,而不是其他所有人

基本上我想这样做:

If user role contributor then do this to his post and also so everyone can see it
.type-post { border: 10px solid #fff }
else
.type-post { border: 20px solid #000 }
因此,如果我的帖子是由具有用户角色贡献者的特定用户制作的,那么他的帖子边框颜色将为白色,10像素,每个人都应该看到,不仅仅是具有该用户角色的人
如果帖子是由其他人制作的,那么它应该有默认的css或我选择的css,每个人都应该看到,包括具有用户角色贡献者的人<希望有人能帮我!

1 个回复
最合适的回答,由SO网友:WPhil 整理而成

您可以根据用户角色更新post类,以包括一个附加选择器,该选择器添加自定义样式,即

function add_contributor_class_to_single_post( $classes ) { 

    if ( is_single() ) {
        $post_id = get_queried_object_id();
        $author_ID = get_post_field( \'post_author\', $post_id );
        $author_data = get_userdata( $author_ID );
        if (in_array( \'contributor\', $author_data->roles)) {
            // add post class
            array_push( $classes, \'user-contributor\' );
        }
    }
    return $classes;    

}   
add_filter( \'post_class\', \'add_contributor_class_to_single_post\' );
然后将css更新为:

.type-post.user-contributor { border: 10px solid #fff }
.type-post { border: 20px solid #000 }

相关推荐

我的css突然不再加载

我对我的CSS做了一些小改动,没什么疯狂的,把它们上传到了我的网站上。清除了我的缓存,网站突然不显示我的自定义样式。网站:http://experienceantwerp.be/我的样式包含在队列中。php文件,但它始终有效。if (!function_exists(\'understrap_scripts\')) { /** * Load theme\'s JavaScript and CSS sources. */ function