我现在一直在努力解决这个问题,而且似乎无法让它发挥作用。
我有
当作者将照片上传到帖子中时,作者可以在媒体上传对话框中看到其他作者的上传内容。我不希望这种情况发生。我希望作者只能在媒体上传对话框中看到他们自己的上传内容。
我可以通过以下方式实现这一目标:
// 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-ajax部分,它会再次开始显示其他作者媒体,所以它又回到原点。
我尝试使用我在互联网上发现的许多不同方法(1) (2) (3),但由于新的wordpress 3.5媒体上传,这些方法都无法运行对话框和/或ACF。
在使用ACF时,知道如何防止作者看到其他作者媒体吗?
答案 0 :(得分:1)
添加
if($wp_query->query_vars['post_type']!=='attachment'){return;}
它会起作用。 问候。