如何解决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 举报,一经查实,本站将立刻删除。