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

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

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

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

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

了解更多

比方说,你正在创建一个新的职位,宣布即将到来的产品或交易。 您网站上的作者和访客作者将能够在媒体库中看到您上传到该文章的图像。

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

对于很多网站来说,这可能不是什么大不了的事情。 但是,如果您运行的是多作者网站,则可能需要更改该网站。

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

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

这种方法比较简单,建议所有用户使用。

首先你需要安装并激活Restrict Media Library Access插件。 更多细节

这个插件是开箱即用的,没有设置可供您配置。

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

具有管理员或编辑者用户角色的用户将可以照常看到所有媒体上传。

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

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

但是,如果您想添加一个自定义用户角色或者不想使用插件,那么您可以尝试使用此方法。 它使用与插件使用相同的代码,但您将能够修改它以满足您的需求。

这种方法需要你添加代码到你的WordPress文件。 如果您之前没有这样做,那么请参阅我们的指南,了解如何在WordPress中复制和粘贴代码。

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

//限制媒体库访问
 
 add_filter('ajax_query_attachments_args','wpb_show_current_user_attachments');

 函数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;
     }
     返回$查询;
 } 

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