WordPress Forum Plugin bbPress Theme Template Modification and Add Custom Functions
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 主题的方法,欢迎在评论中和大家分享。
谢谢,用上了,刚好用bbpress
那文章没白写。
感谢!!!
我按照上面的操作,bbpress没有在原主题显示帖子的内容,只显示一些话题名称,请问是什么原因呢