虽然博客可以成为您探索创造力的一种方式,但您也可以从写作中受…
默认情况下,WordPress允许作者查看您网站媒体库中的所有图像。如果邀请许多来宾作者,这可能会出现问题。在本文中,我们将向您展示如何限制WordPress媒体库对用户自己的上传内容的访问。
为什么限制媒体库访问用户自己的上载?
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。