限制作者只能查看他们的媒体文件

时间:2013-04-27 作者:andy

我想限制作者查看其他用户上传的文件的能力,因为这会带来无尽的麻烦,因为他们可以更改标题等。

我在这里试过这个代码How to hide media uploads by other users in the Media menu?

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_pages\') )
        $wp_query_obj->set(\'author\', $current_user->id );

    return;
}   
这只在媒体屏幕上起作用,当您在帖子上选择要实际上载的文件时不起作用。

我也尝试了第二种解决方案,但它会导致我的自动完成搜索功能出现问题,我不知道为什么。

有没有办法阻止作者在发表文章时看到其他文件?

1 个回复
SO网友:fuxia

未测试,但也许您可以扩展$pagenow 检查

而不是…

if( \'upload.php\' != $pagenow )
…尝试…

if( ! in_array( $pagenow, array ( \'upload.php\', \'post-new.php\', \'post.php\' ) ) )
这也应该涵盖post editor屏幕。

结束