建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

如何让WordPress博客的投稿者也可以上传图片的方法(WordPress给投稿者和订阅者开启上传文件权限)

GG网络技术分享 2025-03-18 16:12 0


如何让WordPress博客的投稿者也可以上传图片的方法

大家都知道有很多WordPress站点需要开放后台给用户投稿,来增加博客的文章和收录,仅仅博主一个人很难天天都写文章的嘛,所以给其他作者来投稿是一种很精明的选择,通常这样的情况下我们将来我们博客投稿的作者设置为:投稿者

众所周知,在WordPress中,投稿用户在后台添加新文章时,只能发布文本内容,不能添加媒体,也就是不能上传图片、视频、音乐文件和压缩包等文件。但是对于很多站点来说,图片等媒体对于丰富文章内容,增加可读性起到了必不可少的作用,所以投稿者不能上传图片实在是不方便。所以今天我韦庆东就将跟大家讲解,如何在WordPress中如何给投稿者赋予上传文件的权限的方法。

其实,方法很简单的,使用文本编辑器打开你博客的当前主题目录下的functions.php文件,找到<?php,另起一行,添加以下代码即可:

if ( current_user_can(‘contributor’) && !current_user_can(‘upload_files’) )

add_action(‘admin_init’, ’allow_contributor_uploads’);

function allow_contributor_uploads() {

$contributor = get_role(‘contributor’);

$contributor->add_cap(‘upload_files’);

}

然后使用投稿者帐号登录一下WordPress后台的文章发布页面,看看是否已有了添加媒体的按钮。有这个按钮就说明权限赋予成功了!

当上述代码被执行过一次后,投稿者的权限设置将储存到数据库中,即使你移除以上代码,投稿者也依然拥有上传文件的权限的哦。如果你某天心血来潮不想给投稿者上传文件的权限了,就可以使用以下代码来替换上面的代码来实现这个目的:

if ( current_user_can(‘contributor’) && current_user_can(‘upload_files’) )

add_action(‘admin_init’, ’allow_contributor_uploads’);

function allow_contributor_uploads() {

$contributor = get_role(‘contributor’);

$contributor->remove_cap(‘upload_files’);

}

然后使用投稿者帐号登录一下WordPress后台的文章发布页面,看看添加媒体的按钮是否已经没有了,没有这个按钮就说明权限剥夺成功了!

下面,我们再来讲一下如何限制投稿者只能上传图片,因为我们很多时候只给投稿的人上传图片的权限,而不给他们上传视频啊压缩版啊等比较大型的文件,一是基本没有这样的需要除非你是做专门的博客了,第二是上传这些大文件会增加我们博客空间的负担呀。限制投稿的人只能上传图片的方法,将下面的php代码放到你博客的当前主题的functions.php中:

add_filter(‘upload_mimes’, ‘custom_upload_mimes’);

function custom_upload_mimes ( $existing_mimes=array() ) {

$existing_mimes = array(‘jpg|jpeg|jpe’ => ‘image/jpeg’,

‘gif’ => ‘image/gif’,

‘png’ => ‘image/png’,

‘bmp’ => ‘image/bmp’,

‘tif|tiff’ => ‘image/tiff’,

‘ico’ => ‘image/x-icon’);

return $existing_mimes;

}

如果你需要对投稿者上传的图片可以控制大小呢,也是有方法的:在你WP博客当前主题的functions.php中添加以下代码,数值根据你自己的需要修改一下哦:

@ini_set( ‘upload_max_size’ , ’32M’ );

@ini_set( ‘post_max_size’, ’32M’);

@ini_set( ‘max_execution_time’, ’300′ );

最后,我们要讲一下,当你给予投稿者上传文件的权限后,他们是可以看到你整个博客里的多媒体库里的所有的文件的哦,也是可以调用之前上传到媒体库里的文件的哦,但是你可以放心的是,他们是没有权限删除我们之前已经上传好的文件的哦,但是,他们是有权限删除他们自己上传的文件的哦,因为那些文件是他们上传的呀,他们有权使用和删除。

WordPress给投稿者和订阅者开启上传文件权限

WordPress为了整个系统的安全性,默认投稿者是没有上传图片、视频及其它文件的权限的。但如果你的网站是个社区化类型的网站就需要给投稿者开启上传文件权限,比如允许用户上传头像、建立个人相册等,这些功能如果没给投稿者开启上传文件权限就无法实现。我就曾经被这个上传权限折腾过,原先在弄上传头像时发现前台投稿者用户怎么也无法上传头像,折腾比较久才想到这个权限的事。本文将介绍如何给投稿者开启上传文件权限。以下是具体方法:

1、给投稿者开启上传文件权限:

/*

给投稿者开启上传文件权限

代码来源: www.wpzxbj.com/jiaocheng/1790.html

*/

if ( current_user_can(\'contributor\') && !current_user_can(\'upload_files\') )

add_action(\'admin_init\', \'allow_contributor_uploads\');

function allow_contributor_uploads() {

$contributor = get_role(\'contributor\');

$contributor->add_cap(\'upload_files\');

}

代码说明:将以上代码插入主题function.php即可。但需要注意的是,这段代码开启投稿者上传文件权限后,如需重新禁用其上传文件权限时,直接删除这段代码并不能去掉投稿者的上传权限。如需禁用该权限,需要将以上代码中的:

$contributor->add_cap(\'upload_files\');

修改为:

$contributor->remove_cap(\'upload_files\');

只有这样,才能重新禁用投稿者上传文件权限。

2、也可以用以下代码实现给订阅者开启上传文件权限:

/*

给订阅者开启上传文件权限

代码来源: www.wpzxbj.com

*/

function enable_file_uploads_by_role( ) {

$role = \'subscriber\';

if(!current_user_can($role) || current_user_can(\'upload_files\'))

return;

$contributor = get_role( $role );

$contributor->add_cap(\'upload_files\');

}

add_action(\'admin_init\', \'enable_file_uploads_by_role\');

原理是一样的,只是实现的代码不一样而已。

标签:

提交需求或反馈

Demand feedback