WordPress让投稿者也可以上传图片

日期: 标签:WordPress教程 77 条留言
如需帮忙改代码,或者WordPress二次开发、PHP网站建设等需求,可联系我购买付费服务:  点此联系我

     有很多WordPress站点需要开放后台,以接受用户投稿,一般情况下我们将新用户的默认角色设置为:投稿者

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

     方法很简单,使用文本编辑器打开当前主题目录下的functions.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');
}

     上述代码执行过一次后,投稿者的权限设置将储存到数据库中,即使你移除以上代码,投稿者也依然拥有上传文件的权限。如果你想剥夺投稿者上传文件的权限,你可以使用以下代码来替换上面的代码:

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后台的文章发布页面,看看是否已经没有了添加媒体的按钮。如果按钮已经消失,你就可以将上面的代码移除了。

-- 完 --

本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:露兜博客 https://www.ludou.org/wordpress-allow-contributor-uploads.html
露兜
kaapass@outlook.com  QQ 825533758

业余编程爱好者,主业是淘宝店主,卖些工艺品,感兴趣可以到我的淘宝店看看(旺旺不提供技术咨询):西西弗sisyphe

77 条留言

点此留言
1 2 546
  1. Bob

    你好博主,请教一下,如何限制投稿者只能上传图片呢?

    • Ludou

      @Bob 将下面的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;
      }

      • Bob

        @Ludou 谢谢露兜大大赐教!

  2. 电影下载

    楼主你好,就是我在文章里添加相册后怎样可以使订阅者可以自行添加图片?或者有没有这方面的差价介绍,谢谢

  3. pinet

    可以上传比较好, 但是用户可以自己删除 ? 这个不好吧?

    • Ludou

      @pinet 用户只能删除自己上传的东西。

    • Ludou

      @pinet 难道上传之后就是你的财产了?不让用户删自己上传的东西?

      • pinet

        @Ludou 你说得有道理,

        可是有时候他上传文章后 有一天不高兴把图片全部删除了。。

        他没有权力删除自己文章。 可以删除图片 这文章会怎么样哦?

        • Ludou

          @pinet 如果你有这样的顾虑,就不用开放用户投稿了。
          恶意用户可以发大量文章塞满你的数据库,也可以上传无数附件填满你的网站空间。。。

          • pinet

            @Ludou 能不能让投稿者可以上传附件 不可以删除

  4. little_cafe

    2.7版本的D8主题,按这个方法做了,还是没有效果,投稿者不能添加媒体。更惨的是现在后台用户不能修改角色了,也删不了用户了,诚心求教。

    • Ludou

      @little_cafe 换主题试试。

    • Ludou

      @little_cafe "用户不能修改角色了,也删不了用户",请确保你当前登录的是管理员帐号。

  5. xuexi

    @Ludou 我有这么个要求

    能不能让投稿者可以上传附件 却不可以删除

  6. 蛋故纯

    不知道博主有没有支持前台上传图片的代码,想学习一下。

  7. Vans爱好者

    为啥添加了之后,用户在上传的时候可以显示上传按钮,但是一旦上传图片就显示错误:上传时发生了错误。请稍后再试。

  8. 微商

    太强大了了,终于搞定了,3q

  9. feiyang

    请问 怎么让普通用户评论支持贴图呢? 想煎蛋的那样

    • 露兜

      @feiyang 插件:WP User Frontend

    • 漫展

      @feiyang 可以实现,只需要 为评论框 加载自带的可视编辑器就行了

      用 wp_editor 替换默认评论框

      wp_editor( '', comment, $settings = array(
      'quicktags' => 0,
      'tinymce'=>1,
      'teeny' => 1,
      'media_buttons'=>1,
      'textarea_rows'=>4,
      'editor_class'=>"textareastyle",

      ) );

      然后在网站底部加载 wp_footer()就可以看效果了

  10. 爱运营

    请问如何修改设置投稿者或者编辑只能看到自己上传的图片呢?

    • shiyunpro

      @爱运营 我也在想这个问题

  11. goit

    添加到第几行呢?

  12. 装逼专修学院

    添加了没用啊

  13. 装逼专修学院

    可以了,谢谢博主

  14. 韦庆东原创博客

    感谢了,谢谢分享,正是需要的。先测试一下。

  15. 韦庆东

    那段代码要插入在函数模板的哪个位置呢?我插入到中间某个地方和最后,都提示错误呀?

  16. 板邓

    给投稿者或者订阅者权限之后,要在后台上传才行,但是在前台上传不行,怎么解除这个限制呢?

  17. 懵懂

    博主,请问一下如何实现只有会员才能上传图片的功能呢

    • 露兜

      @懵懂 只有登陆后台才能上传图片,不是会员怎么能登陆后台?

  18. xiawu

    如何使用户上传附件,求代码

1 2

发表留言