如何在 WordPress 中快速管理用户媒体上传

瘢壳枚举
• 阅读 394

随着 WordPress 成为最受欢迎的网站内容管理系统之一,确保用户在管理其内容时拥有愉快高效的体验变得越来越重要。WordPress 的主要功能之一是它的媒体库,它允许用户上传和存储图像、视频和其他文件以用于他们的内容。

如何在 WordPress 中快速管理用户媒体上传

当您有一个多作者网站时,可能很难管理每个作者的媒体提交。允许作者访问所有媒体提交可能会导致混淆和错误,尤其是当涉及不应对所有用户可见的敏感信息时。

为了解决这个问题,WordPress 提供了一个选项让用户安排媒体上传。通过启用此选项,用户只能访问和管理他们自己在媒体库中上传的内容,这反过来又会隐藏仅限订阅者的信息,并防止作者意外删除其他用户的内容。

在本教程中,我们将指导您完成启用有助于在 WordPress 中组织用户媒体上传的功能所需的步骤。启用后,您的用户在管理用户媒体上传时将获得顺畅无忧的体验,您网站的内容管理也将更加高效。

为什么要限制作者访问用户媒体上传?

如果您有一个多作者WordPress 博客,用户可能会上传各种照片。这会使作者很难找到合适的图像,或者他们可能会不小心删除或更改其他人的媒体文件。

这可能会导致各种问题,包括生产力下降、网站管理员和编辑的工作量增加以及编辑工作流程困难。

这种不受限制的访问可能会带来隐私风险。例如,如果您正在开发新产品或新概念,其他作者可能会在您发布公告之前查看媒体库中的机密照片。

如果您有 WordPress 会员网站,贡献者和订阅者可能会访问他们不应该访问的高级媒体文件。例如,如果您销售在线课程,贡献者可以利用他们的媒体库访问权限来获取高级 PDF 和其他课程材料,而无需购买会员资格。

也就是说,让我们看看如何限制谁可以在您的 WordPress 管理区域中看到媒体上传。只需单击下面的快速链接即可转到您要使用的技术。

方法 1:使用插件组织用户媒体上传(快速简单)

Frontier Limit Access插件是限制媒体上传访问的最简单方法。

这个免费插件决定一个用户是否有编辑他人帖子的权限,允许他们编辑其他用户的帖子。

默认情况下,拥有站点管理员或编辑职位的每个人都具有此访问权限。如果您想更改此设置,您可以通过在 WordPress 中添加或删除用户角色的功能来实现。

如果用户没有此权限,他们将无法在激活此插件后查看WordPress 媒体库中其他用户的文件。这使您可以在不限制管理员和编辑者访问的情况下管理用户上传的媒体。

此插件可立即运行且无需配置,因此您只需安装并激活 Frontier Limit Access 插件即可。

方法 2:使用编码来组织媒体上传(高级)

另一种选择是使用代码来限制对媒体库中文件的访问。此方法需要您在 WordPress 博客或网站中添加一段代码,因此不适合初学者。但是,您不需要安装单独的插件来组织您的媒体上传。

通常,可以找到包含将自定义代码添加到 WordPress 主题的说明的指南。但是,不鼓励这样做,因为代码中的错误和拼写错误可能会导致 WordPress 频繁出错,甚至完全毁掉您的网站。

这就是我们建议WPCode 的原因。

WPCode 是最好的代码片段插件,有超过 100 万个 WordPress 网站使用它。无需编辑 functions.php 文件即可轻松向 WordPress 添加自定义代码。

我们将向此方法添加代码以检查用户是否具有编辑他人帖子的权限。如果他们没有此权限,下面的代码将阻止他们查看 WordPress 媒体库中其他人的文件。

第一步是安装并激活免费的 WPCode 插件

激活后,导航至Code Snippets » Add Snippet

如何在 WordPress 中快速管理用户媒体上传

将光标悬停在“添加您自己的代码”上以开始使用。

当它出现时,单击“使用代码段”按钮。

如何在 WordPress 中快速管理用户媒体上传

首先,给自定义代码片段一个标题。这可能是任何有助于识别 WordPress 仪表板中的片段的东西。

然后,在“代码类型”字段下,选择“PHP 代码段”。

如何在 WordPress 中快速管理用户媒体上传

将下面一行代码片段放入代码预览区:

add_filter( 'ajax_query_attachments_args', 'user_show_attachments'

);

functionuser_show_attachments( $query) {

    $user_id= get_current_user_id();

    if( $user_id&& !current_user_can('activate_plugins') && !current_user_can('edit_others_posts

') ) {

        $query['author'https://i0.wp.com/awplife.com/wp-content/uploads/2023/02/php-auto-insert.png?resize=680%2C297&ssl=1" sizes="(max-width: 680px) 100vw, 680px" srcset="https://i0.wp.com/awplife.com/wp-content/uploads/2023/02/php-auto-insert.png?w=680&ssl=1 680w, https://i0.wp.com/awplife.com/wp-content/uploads/2023/02/php-auto-insert.png?resize=300%2C131&ssl=1 300w, https://i0.wp.com/awplife.com/wp-content/uploads/2023/02/php-auto-insert.png?resize=150%2C66&ssl=1 150w" alt="自动插入" width="680" height="297" class="wp-image-26581" style="box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom; border-style: none; display: block; border-radius: inherit;" title="如何在 WordPress 5 中快速管理用户媒体上传" loading="lazy" data-recalc-dims="1" />

之后,导航到屏幕顶部并单击“非活动”切换按钮以将其设置为“活动”。

最后,单击“保存代码段”以发布 PHP 代码段。

如何在 WordPress 中快速管理用户媒体上传

用户现在只能访问他们发布到 WordPress 媒体库的文件。

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Easter79 Easter79
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这