我已经为这个问题挣扎了很长一段时间,但似乎无法解决。
我有
当作者将照片上传到帖子中时,作者可以在媒体上传对话框中看到其他作者的上传。我不希望这种情况发生。我希望作者在媒体上传对话框中只看到他们自己上传的内容。
我可以用这个来工作:
// Prevent Authors from seeing other authors media files
add_filter('parse_query', 'my_parse_query' );
function my_parse_query( $wp_query ) {
// Only applicable for Media Library && Media Upload Dialog
if (! preg_match('/wp-admin\/(?:upload|media-upload|admin-ajax).php/', $_SERVER['REQUEST_URI']) ) {
return;
}
global $current_user;
$user_roles = $current_user->roles;
$user_role = array_shift($user_roles);
if ($user_role && is_string($user_role) && strtolower($user_role)==='author') {
$wp_query->set( 'author', $current_user->id );
}
}
但反过来,这又会阻止自定义字段在用户配置文件中工作。这是因为ACF使用admin-ajax将字段添加到编辑屏幕中,但如果我从上面的函数中删除admin-aajax部分,它就会再次显示其他作者的媒体,所以它又回到了原点。
我试过用几十种不同的方法
(1)
(2)
(3)
我在网上找到的,但由于新的wordpress 3.5媒体上传对话框和/或ACF,它们都不起作用。
知道如何防止作者在使用ACF时看到其他作者的媒体吗?