我试图通过在两个文本块中添加自定义内容短代码来隐藏基于Visual Composer中用户角色的某些页面部分。第一个文本块位于我要隐藏的所有内容的顶部,但管理员包含:
[is role=administrator]
第二个文本块位于我要隐藏的内容的底部,包含结束标记
[/is]
这正在做它应该做的事情并隐藏内容,但是,Visual Composer似乎不喜欢它,并且VC短代码最终输出到管理员的页面,即[/ vc_column]。我无法让它不显示VC短代码。它也很奇怪它只输出管理员的短代码。
如果有不同或更好的方法来完成我想要完成的任务,我会对任何解决方案持开放态度!我只是希望某些页面部分只对管理员可见。
答案 0 :(得分:0)
您可以使用头函数使用Jquery通过css类为每个用户删除元素。
下面不是经过测试的解决方案,但可以是实现您想要的方法但不确定如何完全删除输出源代码只隐藏它。
这可以添加到函数文件中或内置到插件中。
function insert_header()
{
// Check what user role
global $current_user;
$user_roles = $current_user->roles;
$user_role = array_shift($user_roles);
//return $user_role;
// Check if the user has role
if($user_role == "editor")
{
// inject jQuery or css to remove the elements by class
}
}
add_action('wp_head','insert_header');