如何在 WordPress 中限制对用户自己上传的媒体库的访问

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

限制 WordPress 媒体库访问用户自己的上传

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

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

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

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

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

对于许多网站来说,这可能没什么大不了的。但是,如果您运行一个多作者网站,那么您可能需要更改此设置。

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

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

这种方法更简单,推荐给所有用户。

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

此插件开箱即用,无需您配置任何设置。

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

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

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

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

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

此方法要求您将代码添加到 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 管理区域中他们自己的帖子。