修改 bbPress 模板

修改 bbPress 模板

bbPress 有許多模板可以改變論壇的顯示方式,您可以更改這些模板以完全改變論壇的顯示方式。

您會在以下位置找到這些模板

wp-content/plugins/bbpress/templates/default/bbpress/

論壇的索引從使用開始

content-archive-forum.php

如果您開啟它,您會看到他們使用函式 bbp_get_template_part 呼叫了另一個模板

<?php bbp_get_template_part( 'loop', 'forums'); ?>

(這轉化為 loop-forums.php)

這反過來又叫

<?php bbp_get_template_part( 'loop', 'single-forum'); ?>

(這轉化為 loop-single-forum)

等等。

如果您需要更改 bbpress 模板,那麼您真的應該在子主題中執行此操作,否則主題升級將覆蓋它。

有關如何設定子主題的資訊,請參閱

函式檔案和子主題 – 解釋!

更改模板

在您的主題中建立一個 bbPress 資料夾:

wp-content/%yourthemename%/bbpress

其中 %yourthemename% 是您的主題名稱。

然後進入

wp-content/plugins/bbpress/templates/default/bbpress/

將您想要更改的任何檔案複製到主題中的 bbPress 資料夾中。 bbPress 現在將使用此檔案而不是預設檔案,您可以修改此檔案。

多站點

多站點

WordPress 多站點是一種能夠建立由單個 WordPress 安裝提供支援的站點網路的方法。以這種方式執行多個站點的設定非常簡單,而 bbPress 在這種型別的環境中開箱即用。

要了解如何設定站點網路,請按照有關如何設定站點網路的 WordPress 法典文章進行操作:  如何建立網路

在以下任何一種情況下,bbPress 完全按照您的要求工作。 bbPress 本機僅在其啟用的站點上執行。如果它在網路範圍內、在子站點上或作為必須使用的外掛被啟用,它將在網路中的所有站點上閒置,為這些站點的關鍵大師準備建立論壇並製作適合該需求的體驗地點。

全網啟用

  1. 轉到儀表盤 > 網路管理員。
  2. 轉到外掛 > 新增外掛。
  3. 您將看到特色外掛的 bbPress 部分,您可以從那裡安裝,或者您可以在搜尋欄中鍵入 「bbPress」 並按 Enter 鍵來搜尋外掛。
  4. 單擊立即安裝。
  5. 打網路啟用在外掛列表中的 bbPress 的外掛。

bbPress 也可以配置為必須使用的外掛,以便在網路範圍內工作。

僅多站點域根

  1. 轉到儀表盤 > 網路管理。
  2. 轉到外掛 > 新增外掛。
  3. 您將看到特色外掛的 bbPress 部分,您可以從那裡安裝,或者您可以在搜尋欄中鍵入 「bbPress」 並按 Enter 鍵來搜尋外掛。
  4. 單擊立即安裝。
  5. 安裝 bbPress 外掛後不要點選網路啟用。
  6. 將滑鼠懸停在 WordPress 工具欄頂部的 「我的站點」 連結上,然後選擇您網路的域根站點。
  7. 轉到外掛 > 已安裝的外掛。
  8. 現在啟用 bbPress 外掛。

僅網路的子站點

  1. 轉到儀表盤 > 網路管理。
  2. 轉到外掛 > 新增外掛。
  3. 您將看到特色外掛的 bbPress 部分,您可以從那裡安裝,或者您可以在搜尋欄中鍵入 「bbPress」 並按 Enter 鍵來搜尋外掛。
  4. 單擊立即安裝。
  5. 安裝 bbPress 外掛後不要點選網路啟用。
  6. 將滑鼠懸停在 WordPress 工具欄頂部的 「我的站點」 連結上,然後選擇您希望 bbPress 所在的網路站點。
  7. 轉到外掛 > 已安裝的外掛。
  8. 現在啟用 bbPress 外掛。

多網路安裝

bbPress 還適用於多個 WordPress 網路。您可以將多站點安裝變成許多多站點網路,所有這些網路都圍繞一箇中央使用者群。您需要安裝 WP Multi Network 等外掛 才能配置此類設定。

Custom Capabilities

Custom Capabilities

Custom Capabilities
Codex Home → Custom Capabilities
Whilst bbPress provides a good set of forum roles, with distinct capabilities, you may want to amend these or add new names.
However the latest combination of WordPress and bbPress does not work if the code to do this is in the functions.php file of the child theme (or indeed parent theme!).
If you put this code in a plugin, it seems to work fine.
If you are comfortable in changing files and FTPing them to your site, then visit bbpress role adder – Robin W』s website (rewweb.co.uk) for a plugin and template that should work
Adding new names
At the simplest levels, you can add a new role name and give it existing capabilities
This can be useful just for your own admin purposes, but also if like me you hate the 「keymaster」 role name, just create a new role and give it keymaster capabilities.
The following code creates three new roles with names 『name 1′,』name 2′ and 『name 3′ the first role has participant, the second moderator and the third keymaster.
Simply amend the code to create as many roles with whatever capabilities you need
add_action (『wp_loaded』 , 『load_new_roles』) ;
function load_new_roles ()
{
add_filter( 『bbp_get_dynamic_roles』, 『add_custom_role』, 1 );
}
function add_custom_role( $bbp_roles )
{
$bbp_roles[『my_custom_role1』] = array(
『name』 =>』name 1′,
『capabilities』 =>bbp_get_caps_for_role( bbp_get_participant_role() ) // the same capabilities as participants
);
$bbp_roles[『my_custom_role2』] = array(
『name』 =>』name 2′,
『capabilities』 =>bbp_get_caps_for_role( bbp_get_participant_role() ) // the same capabilities as participants
);
$bbp_roles[『my_custom_role3』] = array(
『name』 =>』name 3′,
『capabilities』 =>bbp_get_caps_for_role( bbp_get_keymaster_role() ) // the same capabilities as keymaster
);
return $bbp_roles;
}
Creating new roles
If you want to add a new roles with specific capabilities, then you can add these
The code below adds a role called 『tutor』 simply change the word tutor wherever it occurs to the name you want and decide what capabilities you want to the role to have.
//code to add tutor role

add_action ('wp_loaded' , 'load_new_roles') ;

function load_new_roles ()
{
add_filter( 'bbp_get_dynamic_roles', 'add_new_roles', 1 );
add_filter( 'bbp_get_caps_for_role', 'add_role_caps_filter', 10, 2 );
}
function add_new_roles( $bbp_roles )
{
/* Add a role called tutor */
$bbp_roles['bbp_tutor'] = array(
'name' =>'Tutor',
'capabilities' =>custom_capabilities( 'bbp_tutor' )
);

return $bbp_roles;
}

function add_role_caps_filter( $caps, $role )
{
/* Only filter for roles we are interested in! */
if( $role == 'bbp_tutor' )
$caps = custom_capabilities( $role );

return $caps;
}

function custom_capabilities( $role )
{
switch ( $role )
{

/* Capabilities for 'tutor' role */
case 'bbp_tutor':
return array(
// Primary caps
'spectate' => true,
'participate' => true,
'moderate' => false,
'throttle' => false,
'view_trash' =>false,

// Forum caps
'publish_forums' =>false,
'edit_forums' => false,
'edit_others_forums' => false,
'delete_forums' => false,
'delete_others_forums' => false,
'read_private_forums' => true,
'read_hidden_forums' => false,

// Topic caps
'publish_topics' => true,
'edit_topics' => true,
'edit_others_topics' => false,
'delete_topics' => false,
'delete_others_topics' => false,
'read_private_topics' => true,

// Reply caps
'publish_replies' => true,
'edit_replies' => true,
'edit_others_replies' => false,
'delete_replies' => false,
'delete_others_replies' => false,
'read_private_replies' => true,

// Topic tag caps
'manage_topic_tags' => false,
'edit_topic_tags' => false,
'delete_topic_tags' => false,
'assign_topic_tags' => true,
);

break;

default :
return $role;
}
}
The code below adds two roles, tutor and pupil. Using this you should be able to add any number of roles
add_action ('wp_loaded' , 'load_new_roles') ;

function load_new_roles () {
add_filter( 'bbp_get_dynamic_roles', 'add_new_roles', 1 );
add_filter( 'bbp_get_caps_for_role', 'add_role_caps_filter', 10, 2 );
}
function add_new_roles( $bbp_roles )
{
/* Add a role called tutor */
$bbp_roles['bbp_tutor'] = array(
'name' =>'Tutor',
'capabilities' =>custom_capabilities( 'bbp_tutor' )
);

/* Add a role called pupil */
$bbp_roles['bbp_pupil'] = array(
'name' =>'Pupil',
'capabilities' =>custom_capabilities( 'bbp_pupil' )
);

return $bbp_roles;
}

function add_role_caps_filter( $caps, $role )
{
/* Only filter for roles we are interested in! */
if( $role == 'bbp_tutor' )
$caps = custom_capabilities( $role );

if( $role == 'bbp_pupil' )
$caps = custom_capabilities( $role );

return $caps;
}

function custom_capabilities( $role )
{
switch ( $role )
{

/* Capabilities for 'tutor' role */
case 'bbp_tutor':
return array(
// Primary caps
'spectate' => true,
'participate' => true,
'moderate' => false,
'throttle' => false,
'view_trash' =>false,

// Forum caps
'publish_forums' => false,
'edit_forums' => false,
'edit_others_forums' => false,
'delete_forums' => false,
'delete_others_forums' => false,
'read_private_forums' => true,
'read_hidden_forums' => false,

// Topic caps
'publish_topics' => true,
'edit_topics' => true,
'edit_others_topics' => false,
'delete_topics' => false,
'delete_others_topics' => false,
'read_private_topics' => true,

// Reply caps
'publish_replies' => true,
'edit_replies' => true,
'edit_others_replies' => false,
'delete_replies' => false,
'delete_others_replies' => false,
'read_private_replies' => true,

// Topic tag caps
'manage_topic_tags' => false,
'edit_topic_tags' => false,
'delete_topic_tags' => false,
'assign_topic_tags' => true,
);

/* Capabilities for 'pupil' role */
case 'bbp_pupil':
return array(
// Primary caps
'spectate' => true,
'participate' => true,
'moderate' => false,
'throttle' => false,
'view_trash' => false,

// Forum caps
'publish_forums' => false,
'edit_forums' => false,
'edit_others_forums' => false,
'delete_forums' => false,
'delete_others_forums' => false,
'read_private_forums' => true,
'read_hidden_forums' => false,

// Topic caps
'publish_topics' => true,
'edit_topics' => true,
'edit_others_topics' => false,
'delete_topics' => false,
'delete_others_topics' => false,
'read_private_topics' => true,

// Reply caps
'publish_replies' => true,
'edit_replies' => true,
'edit_others_replies' => false,
'delete_replies' => false,
'delete_others_replies' => false,
'read_private_replies' => true,

// Topic tag caps
'manage_topic_tags' => false,
'edit_topic_tags' => false,
'delete_topic_tags' => false,
'assign_topic_tags' => true,
);

break;

default :
return $role;
}
}

匯出資料

匯出資料

匯出您的 bbPress 資料 (論壇、話題和回覆對於快速備份或從一個安裝了 bbPress 的 WordPress 站點遷移到另一個站點非常有用。

  1. 登入您的 WordPress 後端。
  2. 轉到工具 > 匯出
  3. 您將看到一個螢幕以選擇要匯出的內容。您可以選擇按每個文章型別匯出 bbPress 內容,也可以一次匯出所有內容。
  4. 選擇要匯出的內容後,單擊 「下載匯出檔案」 按鈕。
  5. 現在您應該下載檔案,稍後您可以透過轉到 「工具」>「匯入」 將其匯入到另一個站點

測試您的 bbPress 安裝

測試您的 bbPress 安裝

無論您是在開發外掛、建立主題還是為 bbPress 的核心做出貢獻,您都可能需要先學習如何對其進行測試並習慣其功能。

建立測試站點

從嘗試學習 bbPress 工作原理的初學者到想要為 bbPress 開發的高階使用者,建立測試站點非常有用。

建立測試資料

您是否已經建立了一個測試站點,並且想要使用一些演示資料自動填充 bbPress,以便您可以檢視 bbPress 的外觀、執行和執行情況。然後按照這些方法建立一些測試資料。

WP Symposium

WP Symposium

WP Symposium
Codex Home → Getting Started → Importing Data → Import Forums → WP Symposium
WP Symposium v14.x Importer for bbPress
Topics

WP Symposium 『Group Topics』 from Groups are not imported.

Replies

WP Symposium 『Forum comments』 or 『Replies to replies』 and/or 『Threaded replies』 are not imported.

刪除 bbPress

刪除 bbPress

刪除 bbPress 資料

預設情況下,如果外掛被停用和刪除,bbPress 不會刪除任何資料,因此如果您當前安裝的 bbPress 有問題,您可以安裝外掛的乾淨版本,並且仍然像以前一樣擁有所有資料。

如果您決定不執行 bbPress 並且您已經選擇要刪除 bbPress 建立的所有先前資料,則可以執行重置論壇工具來刪除所有 bbPress 資料。

  1. 登入您的 WordPress 後端。
  2. 轉至工具 > 論壇 > 重置論壇。
  3. 選中 「您確定要執行此操作嗎?」 覈取方塊。
  4. 可選:您可能還想檢查刪除匯入的使用者?因為一旦 bbPress 被重置,刪除這些使用者所需的後設資料也將被刪除。
  5. 單擊重置 bbPress 。

請注意,如果您看到 「刪除轉換表... 失敗」,如果您沒有從其他論壇系統匯入,看到此資訊是正常的,因為在匯入過程中會新增一個額外的資料庫表。

使用重置論壇工具將從您的 WordPress 資料庫中刪除所有 bbPress 資料,包括自定義文章型別、話題標籤分類法和 bbPress 使用者後設資料。

但是,在舊版本的 bbPress 中存在一個錯誤,即 bbPress 不會完全刪除使用者角色。 (參見 #2580

因此,如果您使用的是舊版本的 bbPress,請在您的子主題 functions.php 檔案中新增此功能。

$wp_roles = new WP_Roles(); $wp_roles->remove_role("bbp_keymaster"); $wp_roles->remove_role("bbp_moderator"); $wp_roles->remove_role("bbp_participant"); $wp_roles->remove_role("bbp_spectator"); $wp_roles->remove_role("bbp_blocked");

重新整理您的網站,現在所有與 bbPress 相關的使用者角色都已從資料庫中刪除。之後,您可以從子主題的 functions.php 檔案中刪除程式碼。

現在刪除所有 bbPress 資料後,您可以繼續解除安裝 bbPress 。

解除安裝 bbPress

如果您因為核心檔案被修改而需要安裝新版本的 bbPress,您遇到了想要嘗試修復的嚴重問題,或者您只是不想再使用 bbPress,您可以按照以下步驟操作從您的站點解除安裝 bbPress 。

  1. 登入您的 WordPress 後端。
  2. 轉到外掛 > 已安裝的外掛。
  3. 向下滾動,直到看到 bbPress,然後單擊停用。
  4. 頁面重新載入後,向下滾動到 bbPress 外掛,現在單擊紅色的刪除連結。
  5. 您現在將看到一個確認刪除 bbPress 外掛的螢幕,如果您確定要從安裝中刪除 bbPress,請點選 OK 。按鈕。
  6. bbPress 現在已從您的站點中解除安裝。

匯入疑難解答

匯入疑難解答

特定論壇匯入

確保您還檢查每個論壇匯入器法典頁面以瞭解與每個論壇相關的特定問題,列表可在此處找到。

匯入被 「卡住」

匯入話題或回覆時,匯入可能會 「卡住」 並且匯入將不再繼續匯入。

這些型別的錯誤通常是由於該帖子中的某些編碼問題造成的。有時這是從在某個時候完成的編碼轉換為 UTF8 。不管它是什麼,如果不對查詢設定時間限制並將差異一分為二,直到我們可以縮小違規條目的範圍並跳過它,這幾乎是不可能檢測到的。因為查詢自然會花費很長時間,並且會導致丟失資料,所以我對這種方法不滿意。

解決方法是查詢並刪除有問題的話題或回覆,這既耗時又棘手,但這是現階段的唯一方法。

這是我如何除錯它並找到有問題的話題/回覆:

  • 匯入掛起後,單擊 stop,記下它的位置,例如 Converting 11,299 – 11,300
  • start 再次單擊,匯入將從停止的地方繼續
  • 如果它再次掛起,請注意它再次達到的位置
  • 完成後製作源資料庫的新副本
  • 現在刪除資料庫中所有不在匯入過程中失敗的行範圍內的行
  • 使用此資料庫執行全新匯入,並將 「行數限制」 設定設定為 「1」
  • 匯入應該掛在有問題的話題/回覆上
  • 再次,記下它的話題/回覆
  • 點選停止,再次點選開始繼續
  • 一旦您有您的違規者名單並且匯入完成,從資料庫中刪除這些行並再次測試以確保它完成而不會掛起
  • 現在回到您的完整資料庫 (可能是原始資料庫的副本) 從資料庫中刪除這些相同的行並再次執行匯入

調整 MySQL

當您有非常大的論壇要匯入時,可能需要很長時間。

@ezyridah 執行了 100 萬多條訊息的 MyBB 匯入,接近 4 萬個話題和 400 多個成員,耗時約 48 小時,他新增了一些自定義 PHP 和 MySQL 調整,有助於加快速度,您可以看到他使用了哪些設定在這裡,請注意,這是非常先進的,不適合膽小的人。

西裡爾字母使用者名稱

如果您需要在匯入之前匯入使用者 'Cyrillic' 安裝並啟用 @SergeyBiryukovAllow Cyrillic Usernames