bbPress 2.x 版本内置了主题支持,插件需要的所有元素,包括前端编辑器已经包含在 bbPress 中了,所以不需要安装任何主题,即使WordPress主题没有对 bbPress 进行支持,bbPress也可以正常运行。
当然,这只是能让 bbPress 论坛正常运行,对于大部分 bbPress 用户来说,定制需要 bbPress 主题,个性化 bbPress 样式是一个必不可少的过程。幸运的是,bbPress 默认主题可以通过WordPress主题覆盖掉。
自定义 bbPress 主题
bbPress 插件目录 “wp-content/plugins/bbpress/templates/default/” 包含了 “bbpress”, “css”, “extras”, 和 “js”几个目录, 还有 bbPress 的功能文件 “bbpress-functions.php”。
- “bbpress” 目录包含了模板文件,复制该目录中的文件到WordPress主题的 bbpress 文件夹中,bbPress 即可优先应用主题中的模板文件,如:
/wp-content/themes/%your-theme%/bbpress/
- “extras” 目录中包含了 bbPress 主题的页面模板文件,和 WordPress 页面模板文件类似,修改bbPress页面模板时,我们只需要把相应的bbPress页面模板文件复制WordPress主题的根目录下即可。如:我需要修改bbPress的登陆页面,我只需要把 extras 文件夹中的 page-user-login.php 文件复制到
/wp-content/themes/%your-theme%/page-user-login.php
,然后再修改WordPress主题中的该文件即可。 - “css” 目录中包含了 bbPress 默认主题的 CSS 文件,修改CSS之前,我们把css文件夹中的所有文件复制到WordPress主题的css文件夹中即可。如:
/wp-content/themes/%your-theme%/css/
- 一般情况下,我们需要复制完整的 ‘bbpress’ 和 ‘css’ 目录到我们正在使用的WordPress主题目录中,一旦完成此操作,bbPress 就会自动应用WordPress主题中的相应文件,是不是很简单?
为 bbPress 启用可视化编辑器
bbPress 默认的编辑器是纯文本编辑器,为了丰富回复格式,我们可以为 bbPress 启用可视化编辑器。通过下面的代码即可实现。
复制add_filter('bbp_after_get_the_content_parse_args', function ($args = [])
{
$args[ 'tinymce' ] = true;
return $args;
});
为 bbPress 启用媒体上传按钮
如果只允许用户上传文字,论坛内容会显得比较单调,我们可以为 bbPress 启用媒体上传按钮允许用户上传图片,通过下面的代码即可为 bbPress 启用媒体上传按钮。
复制add_filter('bbp_after_get_the_content_parse_args', function ($args)
{
$args[ 'media_buttons' ] = true;
return $args;
});
用户发帖时或回复时奖励用户积分
为了提高用户的参与度,我们可以在用户发帖或回复时奖励用户积分,bbPress 为我们提供了对应的动作钩子,来帮助我们实现这个需求。
回复帖子时,奖励积分给用户
复制add_action('bbp_new_reply', function ()
{
Coin::query()->create([
'user_id' => get_current_user_id(),
'title' => 'Reply Topic in the forum',
'point' => 1,
'type' => 1,
]);
}, 10, 7);
用户发帖时,奖励积分给用户
复制add_action('bbp_new_topic', function ()
{
Coin::query()->create([
'user_id' => get_current_user_id(),
'title' => 'Create new topic in the forum',
'point' => 3,
'type' => 1,
]);
}, 10, 7);
通过上面的方法,我们不用修改 bbPress 插件的任何文件,即可自定义 bbPress主 题,自定义的主题不会受到 bbPress 插件升级的影响,如果你有更好修改 bbPress 主题的方法,欢迎在评论中和大家分享。