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

日期: 标签:WordPress教程
如需帮忙改代码,或者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

业余编程爱好者。

78 条留言

点此留言
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 little_cafe

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

    • Ludou

      @little_cafe 换主题试试。

    • Ludou

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

  5. xuexi

    @Ludou 我有这么个要求

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

  6. 蛋故纯

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

  7. Vans爱好者 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

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

  19. sqkkyzx

    请问如何实现投稿人前台直接上传图片到媒体库并选择某预先建好的相册呢?

1 2

发表留言