php 如何在WordPress中限制具有特定角色的用户的内容?

nwlqm0z1  于 2023-03-28  发布在  PHP
关注(0)|答案(2)|浏览(126)

我想隐藏广告登录用户(订户). IM使用一个插件称为“私人”,生成简码.我发现我应该使用的代码,但不知道如何把它放在我的single.php.我的单曲是定制的,所以我不能使用丰富的编辑器.
我想用的那个。
[private role=”subscriber”]Content goes here[/private]
我想把这个代码放在短代码的中间位置。

<div id="M589567ScriptRootC925056"></div>
<script src="https://jsc.adskeeper.co.uk/a/n/anime-tv.fun.925056.js" async></script>
jfewjypa

jfewjypa1#

您不必使用[private]短代码来隐藏divs或广告。
只需使用WordPress原生的current_user_can()函数来定位PHP文件中的特定用户角色

if (current_user_can('subscriber')) {

   //Hide something

} else {

   //Show Something

}

你可以做一些事情,如果你想隐藏的东西,从所有登录的用户

if (is_user_logged_in) {

   //Hide something

} else {

   //Show Something

}

这段代码会进入你的工作php文件或活动主题function.php

xlpyo6sf

xlpyo6sf2#

可能有一个更容易和通用的方法来实现这一点。
1.创建函数以使用户角色显示为主体类

function get_user_role() {
     global $current_user;
     $user_roles = $current_user->roles;
     $user_role = array_shift($user_roles);
     return $user_role;
 }

 add_filter('body_class','my_class_names');
 function my_class_names($classes) {
     $classes[] = get_user_role();
     return $classes;
 }

1.添加一个特定的CSS类到你想要过滤和声明显示的帖子,区块,页面:无;或显示:相应地
例如,我想向编辑和作者显示一篇文章,但向访问者,订阅者和贡献者隐藏它。所以我将类'post-filter'添加到文章中,并将这些行添加到style.css中。

.post-filter, 
.subscriber .post-filter, 
.contributor .post-filter {display: none;}

.editor .post-filter,
.author .post-filter,
.administrator .post-filter {display: block;}

就是这样。

相关问题