阻止其他编辑者在添加媒体弹出窗口中查看其他编辑者的图像

时间:2013-01-03 作者:Emerson Maningo

嗨,我的函数中有这个代码。php及其在编辑器查看媒体库时运行良好:http://example.com/wp-admin/upload.php

add_action(\'pre_get_posts\',\'users_own_attachments\');

function users_own_attachments( $wp_query_obj ) {

global $current_user, $pagenow;

if( !is_a( $current_user, \'WP_User\') )
    return;

if ( \'upload.php\' != $pagenow ) 
    return;

if( !current_user_can(\'delete_users\') )
    $wp_query_obj->set(\'author\', $current_user->ID );

return;
}
上述代码将阻止其他编辑器查看媒体库中其他编辑器上载的图像。只有管理员才能查看上载的所有图像。编辑器只能看到自己上传的图像(而不是其他人上传的图像)。

现在的问题是,在创建或编辑帖子时,Wordpress有一个“添加媒体”按钮,允许用户将图像上传到自己的图库。但当用户将通过“添加媒体”弹出窗口上载时,上述代码不起作用。他们仍然可以看到其他编辑上传的图像。

如何修改上述代码,使其在用户通过“添加媒体”弹出窗口而不是媒体库查看图像时仍能正常工作?非常感谢你的帮助。

1 个回复
SO网友:Emerson Maningo

可行的解决方案是运行条件标记以确定用户是否正在查看添加媒体弹出窗口,请参见此处:Conditional tag to determine if the user is viewing the Add Media (after clicking Add media button)

然后将其添加到本声明的附加内容中:

if (( \'upload.php\' != $pagenow ) || (is_viewing_media))

结束

相关推荐