修改 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