WordPress 论坛插件 bbPress 主题模板修改及添加自定义功能的方法


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 主题的方法,欢迎在评论中和大家分享。

  • 分享:
评论
还没有评论
    发表评论 说点什么