微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Wordpress:仅针对特定用户角色显示媒体库中的项目

如何解决Wordpress:仅针对特定用户角色显示媒体库中的项目

wordpress 中,可以使用functions.PHP 中的此代码段来限制媒体库访问:

add_filter('ajax_query_attachments_args','user_group_library_permission');

function user_group_library_permission($query) {

$user_id = get_current_user_id();

if $user_id && !current_user_can('activate_plugins') && !current_user_can('edit_others_posts')) {
    $query['author'] = $user_id;
}
return $query;

因此,每个在媒体库中上传数据的用户都会看到自己的文件

是否可以推进此功能我有两个自定义用户角色,具有此用户角色的每个用户都应该看到哪些数据上传到了库中,例如A组的所有成员都应该看到成员上传内容,B组的所有用户都应该看到A中的用户上传内容

解决方法

我写了这个 if-else-condition。

$users_sw = [ 8,9,10,24,25,26,27,28,29,30,32,33 ];
$users_so = [ 11,12,13 ];

if ( !current_user_can('activate_plugins') && !current_user_can('edit_others_posts') ) {

    if ( $users_sw ) {
        $query[ 'author__in' ] = $users_sw;
    
    } else if ( $users_so ) {    
        $query[ 'author__in' ] = $users_so;
    
    }
    return $query;
}
return;

当我运行程序时,它总是返回第一个条件。但问题是我使用 id 11 的用户登录,并且在媒体库中显示了由 id 8 的用户上传的文件。但这应该受到限制。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。