You are here:  Home » PHP » 如何限制媒体库访问WordPress中用户自己的上传

默认情况下,WordPress允许作者​​查看网站媒体库中的所有图像。如果您邀请了很多客座作者,这可能会有问题。在本文中,我们将向您展示如何限制WordPress媒体库访问用户自己的上传

Restrict WordPress media library access to user

为什么要限制媒体库访问用户自己的上传?

WordPress允许作者​​查看媒体库中的所有文件。他们还可以查看管理员,编辑或其他作者上传的图像。

要了解更多信息,请参阅有关WordPress用户角色和权限的文章。

假设您正在创建一个新帖子来宣布即将推出的产品或交易。您网站上的作者和访客作者将能够在媒体库中看到您上传到该文章的图像。

您的上传内容也会显示在“添加媒体”弹出窗口中,用户在将图像添加到自己的文章时会看到该弹出窗口。

对于许多网站来说,这可能不是什么大问题。但是,如果您运行多作者网站,则可能需要更改此设置。

我们来看看如何轻松限制媒体库访问用户自己的上传。

方法1:使用插件限制媒体库访问

此方法更容易,建议所有用户使用。

您需要做的第一件事是安装并激活限制媒体库访问插件。有关更多详细信息,请参阅有关如何安装WordPress插件的分步指南。

这个插件开箱即用,没有你可以配置的设置。

激活后,它会过滤媒体库查询,以查看当前用户是管理员还是编辑者。如果用户角色与其中任何一个都不匹配,那么它只会显示用户自己的上传。

具有管理员或编辑者用户角色的用户将能够像往常一样查看所有媒体上传。

方法2:手动限制媒体库访问

第一种方法适用于大多数网站,因为它限制了媒体库访问,并且只允许管理员和编辑者查看所有媒体上传。

但是,如果要添加自定义用户角色或者只是不想使用插件,则可以尝试使用此方法。它使用插件使用的相同代码,但您可以修改它以满足您的需求。

此方法要求您向WordPress文件添加代码。如果您之前没有这样做,那么请查看我们的指南,了解如何在WordPress中复制和粘贴代码。

您需要将以下代码添加到WordPress functions.php文件或特定于站点的插件中。

// Limit media library access
 
add_filter( "ajax_query_attachments_args", "wpb_show_current_user_attachments" );

function wpb_show_current_user_attachments( $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;
} 

代码使用current_user_can函数来检查用户是否具有激活插件或编辑其他用户帖子的功能。如果他们不这样做,则它会更改用于显示媒体文件的查询并将其限制为用户的ID。

我们希望本文能帮助您了解如何限制WordPress媒体库访问用户自己的上传内容。您可能还希望将作者限制在WordPress管理区域中自己的帖子。