bbPress 2.x 版本內(nèi)置了主題支持,插件需要的所有元素,包括前端編輯器已經(jīng)包含在 bbPress 中了,所以不需要安裝任何主題,即使WordPress主題沒有對 bbPress 進(jìn)行支持,bbPress也可以正常運(yùn)行。
當(dāng)然,這只是能讓 bbPress 論壇正常運(yùn)行,對于大部分 bbPress 用戶來說,定制需要 bbPress 主題,個(gè)性化 bbPress 樣式是一個(gè)必不可少的過程。幸運(yùn)的是,bbPress 默認(rèn)主題可以通過WordPress主題覆蓋掉。
自定義 bbPress 主題
bbPress 插件目錄 “wp-content/plugins/bbpress/templates/default/” 包含了 “bbpress”, “css”, “extras”, 和 “js”幾個(gè)目錄, 還有 bbPress 的功能文件 “bbpress-functions.php”。
- “bbpress” 目錄包含了模板文件,復(fù)制該目錄中的文件到WordPress主題的 bbpress 文件夾中,bbPress 即可優(yōu)先應(yīng)用主題中的模板文件,如:
/wp-content/themes/%your-theme%/bbpress/ - “extras” 目錄中包含了 bbPress 主題的頁面模板文件,和 WordPress 頁面模板文件類似,修改bbPress頁面模板時(shí),我們只需要把相應(yīng)的bbPress頁面模板文件復(fù)制WordPress主題的根目錄下即可。如:我需要修改bbPress的登陸頁面,我只需要把 extras 文件夾中的 page-user-login.php 文件復(fù)制到
/wp-content/themes/%your-theme%/page-user-login.php,然后再修改WordPress主題中的該文件即可。 - “css” 目錄中包含了 bbPress 默認(rèn)主題的 CSS 文件,修改CSS之前,我們把css文件夾中的所有文件復(fù)制到WordPress主題的css文件夾中即可。如:
/wp-content/themes/%your-theme%/css/ - 一般情況下,我們需要復(fù)制完整的 ‘bbpress’ 和 ‘css’ 目錄到我們正在使用的WordPress主題目錄中,一旦完成此操作,bbPress 就會(huì)自動(dòng)應(yīng)用WordPress主題中的相應(yīng)文件,是不是很簡單?
為 bbPress 啟用可視化編輯器
bbPress 默認(rèn)的編輯器是純文本編輯器,為了豐富回復(fù)格式,我們可以為 bbPress 啟用可視化編輯器。通過下面的代碼即可實(shí)現(xiàn)。
add_filter('bbp_after_get_the_content_parse_args', function ($args = [])
{
$args[ 'tinymce' ] = true;
return $args;
});
為 bbPress 啟用媒體上傳按鈕
如果只允許用戶上傳文字,論壇內(nèi)容會(huì)顯得比較單調(diào),我們可以為 bbPress 啟用媒體上傳按鈕允許用戶上傳圖片,通過下面的代碼即可為 bbPress 啟用媒體上傳按鈕。
add_filter('bbp_after_get_the_content_parse_args', function ($args)
{
$args[ 'media_buttons' ] = true;
return $args;
});
用戶發(fā)帖時(shí)或回復(fù)時(shí)獎(jiǎng)勵(lì)用戶積分
為了提高用戶的參與度,我們可以在用戶發(fā)帖或回復(fù)時(shí)獎(jiǎng)勵(lì)用戶積分,bbPress 為我們提供了對應(yīng)的動(dòng)作鉤子,來幫助我們實(shí)現(xiàn)這個(gè)需求。
回復(fù)帖子時(shí),獎(jiǎng)勵(lì)積分給用戶
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);
用戶發(fā)帖時(shí),獎(jiǎng)勵(lì)積分給用戶
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主 題,自定義的主題不會(huì)受到 bbPress 插件升級的影響,如果你有更好修改 bbPress 主題的方法,歡迎在評論中和大家分享。


謝謝,用上了,剛好用bbpress