如何将FTP附件存储功能接入到bbPress论坛?

文章目录
  1. 开始配置
  2. “抱歉,您不能添加附件到此文章。(Sorry, you are not allowed to attach files to this post.)”

因为某些原因(主要是服务器存储空间不够),网站所在的服务器最好只存放WordPress与其相关的内容,将图片等附件移动到另一台服务器上,也就是常说的“动静分离”。

经过一阵搜索,我打算使用“FTP附件存储”的方式实现。

WordPress还好说,但bbPress就不太一样了。

开始配置

我使用了“Hacklog Remote Attachment”插件。这个插件可以将从WordPress媒体库中上传的文件直接上传到FTP服务器里。经过配置和测试后,插件完全可用。

在前台,我之前使用的是另一款图片上传插件,这个插件使用的是自己的一套上传方式,“Hacklog远程附件”对其无效。

于是我就干脆直接将WordPress后台的“添加媒体”按钮搬到前台来,因为只有通过这个按钮上传的图片才会通过“Hacklog远程附件”上传到FTP服务器。

我给子主题的function.php文件里添加了以下代码,实现了这个功能:

/**
* Allow upload media in bbPress
*
* This function is attached to the 'bbp_after_get_the_content_parse_args' filter hook.
*/
function bavotasan_bbpress_upload_media( $args ) {
$args['media_buttons'] = true;

return $args;
}
add_filter( 'bbp_after_get_the_content_parse_args', 'bavotasan_bbpress_upload_media' );

(同时,我还使用了其他插件来实现前台的TinyMCE编辑器) 至此,这个需求就完成了一半。 当我使用测试用帐号去论坛上传图片的时候,我遇到了这个错误:

“抱歉,您不能添加附件到此文章。(Sorry, you are not allowed to attach files to this post.)”

当我换回管理员帐号后,就能直接上传,没有阻碍。

我百思不得其解,为什么一般用户就无法上传呢? 我首先进行了简单的搜索,在中文互联网里没有一个人遇到这个问题。

随后我就在Bing里搜索,果然找到了原因和解决方法

是因为用户权限不足导致的。 这就好办了,通过使用“User Role Editor”插件,给予了一般用户组upload_filesedit_topics等必要权限。