bbPress 中文主題 CSS 自定義美化樣式

bbPress 中文主題 CSS 自定義美化樣式

bbPress 是一款簡單易用的 WordPress 論壇程序,默認界面並不是很友好,需要主題兼容不然會非常簡陋,這是薇曉朵製作分享的一款 bbPress 中文主題以替代其默認界面。

如何使用和添加代碼:

1 、首先請確保你已經安裝了 bbPress 論壇,可在 WordPress 網站後台直接搜索:bbPress 進行安裝。


2 、請打開網站前台編輯器的【自定義】,複製下方美化代碼到自定義 css 中。


3 、美化代碼內容如下:

/* bbPress China theme by Weixiaoduo.com
* Theme URL: https://www.weixiaoduo.com/themes/bbpress-china-theme
* 如下修改 CSS 和界面樣式請在下方調整,bbPress 中文通用美化代碼由薇曉朵提供,如需幫助請到支持論壇。
* */

html {
-webkit-font-smoothing: antialiased;
}

body {
font: 14px/25px PingFang SC, Microsoft YaHei, WenQuanYi Micro Hei, Arial, Helvetica, sans-serif;
}

#bbpress-forums li.bbp-header { border-top: none }
#bbpress-forums li.bbp-header,
#bbpress-forums li.bbp-footer { background: #f7f7f7 }
.content-area .forum-titles { font-weight: bold; font-weight: 600; color: #777; }
.content-area .bbp-forum-title,
.content-area .bbp-topic-permalink { color: #222; font-weight: bold; font-weight: 600; font-size: 13px; margin: 0; }
#bbpress-forums .bbp-forum-info .bbp-forum-content,
#bbpress-forums p.bbp-topic-meta { font-size: 13px }
#bbpress-forums li.bbp-header,
#bbpress-forums li.bbp-footer,
#bbpress-forums li.bbp-body ul.forum,
#bbpress-forums li.bbp-body ul.topic,
div.bbp-forum-header,
div.bbp-topic-header,
div.bbp-reply-header,
li.bbp-body div.hentry { padding: 15px 15px }
#bbpress-forums div.odd,
#bbpress-forums ul.odd { background: none }
#bbpress-forums .bbp-forum-info .bbp-forum-content,
#bbpress-forums p.bbp-topic-meta { margin-bottom: 0; margin-top: 0; }
.bbp-reply-author { text-align: left !important }
#bbpress-forums fieldset.bbp-form label { margin-bottom: 5px }
.bbp-topics-front ul.super-sticky,
.bbp-topics ul.super-sticky,
.bbp-topics ul.sticky,
.bbp-forum-content ul.sticky { background: none !important; font-size: 1em; }
#bbpress-forums fieldset.bbp-form p,
#bbpress-forums fieldset.bbp-form textarea,
#bbpress-forums fieldset.bbp-form select { margin-bottom: 20px }
div.bbp-submit-wrapper { float: none; margin-top: 0; }
div.bbp-submit-wrapper button { width: 100%; }
#bbpress-forums div.bbp-the-content-wrapper div.quicktags-toolbar { border: 1px solid #eee; border-radius: 0; }
#bbpress-forums div.bbp-the-content-wrapper textarea.bbp-the-content { background: none; border: 1px solid #eee; border-top: none; color: #555; }
div.bbp-forum-header,
div.bbp-topic-header,
div.bbp-reply-header { border-color: #eee }
#bbpress-forums div.bbp-forum-header,
#bbpress-forums div.bbp-topic-header,
#bbpress-forums div.bbp-reply-header { background: #f5f5f5 }
#bbpress-forums li.bbp-header,
#bbpress-forums li.bbp-footer { font-weight: bold; font-weight: 600; color: #777; }
#bbpress-forums li.bbp-footer { display: none }
#bbpress-forums .status-trash.odd { background: none }
#bbpress-forums .status-spam,
#bbpress-forums .status-spam.odd { opacity: 0.3; background: #f7f7f7; }
span.bbp-admin-links a { color: #666 }
#bbpress-forums div.bbp-reply-content { padding: 15px }
#bbpress-forums div.reply { box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; }
#bbpress-forums .bbp-search-author,
#bbpress-forums .bbp-search-content { text-align: left }
.bbp-search .bbp-meta { display: none }
#bbpress-forums div.bbp-forum-title h3,
#bbpress-forums div.bbp-topic-title h3,
#bbpress-forums div.bbp-reply-title h3 { font-size: 14px; font-weight: bold; font-weight: 600; }
.bbpress #subscription-toggle {float: right;}
/* hide pagination count */
.bbp-pagination-count { display: none }
/* search + breadcrumbs */
#bbp_search,
#bbp_search_submit { height: 30px; margin-bottom: 20px; padding-top: 0; padding-bottom: 0; }
#bbpress-forums div.bbp-search-form { float: none }
#bbp_search { width: 70% !important; float: left; height: 40px; }
#bbp_search_submit { float: right; width: 28%; height: 40px; line-height: 40px; padding-top: 0; padding-bottom: 0; }
/* hide "freshness */
.forum-archive .bbp-topic-freshness,
.forum-archive .bbp-forum-freshness,
li.bbp-forum-freshness { display: none }
li.bbp-forum-info,
li.bbp-topic-title { width: 55% }
/* hide social */
body.bbpress .social-share-title,
body.bbpress .social-share-buttons { display: none }
/* login */
.bbp-login-form,
.bbp-logged-in { background: #f7f7f7; border: 1px solid #eee; padding: 20px; }
.bbp-login-form label { width: auto; margin-bottom: 5px; color: #000; }
.bbp-login-form input[type="text"],
.bbp-login-form input[type="password"] { background: #fff; width: 100%; max-width: 100%; border: 1px solid #eee; }
.bbp-login-form input[type="text"]:focus,
.bbp-login-form input[type="password"]:focus { border-color: #bbb; box-shadow: 0 1px 2px rgba(0,0,0,0.1); }
#sidebar .bbp-login-form label[for=rememberme] { width: auto }
/* logged in */
.bbp-logged-in h4 { margin: 0 0 10px; font-weight: bold; font-weight: 600; font-size: 14px; }
.bbp-logged-in .user-submit { float: right }
.bbp-logged-in .user-submit img { display: block; background: #fff; padding: 3px; border: 1px solid #e4e4e4; }
.bbp-logged-in .user-submit img:hover { opacity: 0.8; -moz-opacity: 0.8; -webkit-opacity: 0.8; }
.bbp-logged-in img.avatar { margin: 0 }
.bbp-login-form:after,
.bbp-logged-in:after { content: ""; display: block; clear: both; }
/* bbpress stats */
.widget_display_stats dt { float: left; width: 80%; background: #f7f7f7; padding: 0 12px; text-align: left; height: 40px; line-height: 40px; margin-bottom: 10px; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; border: 1px solid #eee; border-right: none; }
.widget_display_stats dd { float: left; width: 20%; background: #f3f3f3; border: 1px solid #eee; color: #000; text-align: center; padding: 0 12px; height: 40px; line-height: 40px; margin-bottom: 10px; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; }
/* bbpress notice */
div.bbp-template-notice, div.indicator-hint {
border-width: 2px;
border-style: solid;
padding: 0 0.6em;
margin: 5px 0 15px;
border-radius: 0px;
background-color: #ffffe0;
border-color: #e6db55;
color: #000;
clear: both;
}
div.bbp-template-notice p {
margin: 0.5em 0 10px 0 !important;
padding: 5px;
font-size: 13px;
line-height: 150%;
}
div.bbp-template-notice p {
margin: 0.5em 0 10px 0 !important;
padding: 10px;
font-size: 13px;
line-height: 150%;
}
div.bbp-template-notice.info {
border: #cee1ef 2px solid;
background-color: #f0f8ff;
}
div.bbp-template-notice.important {
border: #e6db55 2px solid;
background-color: #fffbcc;
}
#bbpress-forums p.bbp-topic-meta img.avatar, #bbpress-forums ul.bbp-reply-revision-log img.avatar, #bbpress-forums ul.bbp-topic-revision-log img.avatar, #bbpress-forums div.bbp-template-notice img.avatar, #bbpress-forums .widget_display_topics img.avatar, #bbpress-forums .widget_display_replies img.avatar {
float: none;
margin-bottom: -7px;
border: 3px double #ddd;
display: none !important;
}
div.bbp-submit-wrapper button {
width: 100%;
font-size: 14px;
color: #FFFFFF;
font-weight: 700;
}
#bbpress-forums div.bbp-forum-author img.avatar, #bbpress-forums div.bbp-topic-author img.avatar, #bbpress-forums div.bbp-reply-author img.avatar {
border: none;
max-width: 80px;
padding: 0;
margin: 12px auto 0 auto;
float: none;
padding: 5px;
/* height: 80px; */
/* width: 80px; */
border: 1px solid #e7e7e7;
/* -webkit-box-shadow: 0 0 7px rgba(0,0,0,.1); */
-moz-box-shadow: 0 0 7px rgba(0,0,0,.1);
/* box-shadow: 0 0 7px rgba(0,0,0,.1); */
background: #fff;
}

4 、調整為適合你主題的顏色及樣式,

這就看具體情況了,因為是通用代碼,我們盡量沒有加入太多個性化的東西,如果你想要改顏色和樣式的話就需要改上面的 css 來和你自己的主題匹配,


比如我們做的幾款中文主題集成的樣式:

 

Akismet 反垃圾帖

Akismet 反垃圾帖

bbPress 與 Akismet 完全集成。 Akismet 是一個非常有效的插件和服務,可以捕獲各種類型的垃圾郵件和絕大多數垃圾郵件。如果您還有一個現有的博客,並且允許用戶對您的 WordPress 網站上的博客文章發表評論,則此服務特別有用,因為 Akismet 也會接受這一點。

Akismet 為您的 bbPress 論壇所做的是在將任何新話題或回複發布到您的論壇之前對其進行掃描,以確定 bbPress 帖子是否為垃圾郵件,其掃描服務運行數百次測試。如果該服務捕獲到垃圾郵件話題,您將在 WordPress 後端垃圾郵件下的話題部分看到它,並且回復的過程相同。

這將使節制變得更加容易,這樣您就不必像沒有垃圾郵件一樣處理垃圾郵件。不再有垃圾郵件發送者擾亂您的社區,也不再有自己將帖子標記為垃圾郵件後的帖子。

通常 Akismet 預裝了任何 WordPress 安裝,因此您應該已經安裝了它,但是如果您是不幸的人之一,請轉到插件 > 添加新,然後您應該將 Akismet 視為特色插件之一,然後從那裡安裝。

Akismet 確實需要一個 API 密鑰,您可以通過在其網站上註冊來獲取該密鑰。

Akismet 可免費供個人使用,但不能像您在網站上銷售產品那樣用於商業用途。 如果您需要將該服務用於商業用途,Akismet 為該服務提供了多種計劃。

上次修改 2021.12.26

常見任務

常見任務

移動論壇

可以從不同的父論壇或類別移動論壇。為達到這個;

  1. 登錄到 WordPress 後端並轉到論壇 > 所有論壇
  2. 編輯您要移動的特定論壇
  3. 現在更改所選論壇的父論壇屬性

您還可以選擇選擇  — 無父級 —,這樣論壇將不再有父級論壇或類別。

關閉論壇

關閉論壇可以關閉任何子論壇,也可以限制新話題的創建和對已關閉論壇中現有話題的新回復。

  1. 登錄到 WordPress 後端並轉到論壇 > 所有論壇
  2. 編輯您要關閉的特定論壇
  3. 現在將所選論壇的狀態論壇屬性更改為已關閉

刪除論壇

  1. 登錄到 WordPress 後端並轉到論壇 > 所有論壇
  2. 您將看到一個論壇列表,每個論壇都有一組鏈接,其中一個是紅色垃圾鏈接。
  3. 單擊要移至垃圾箱的特定論壇的垃圾箱鏈接,然後刪除。
  4. 現在單擊頂部的垃圾操作鏈接以過濾並僅查看已刪除的帖子,然後從那裡刪除或恢復您的論壇。
  5. 要刪除垃圾箱中的所有論壇,請單擊清空垃圾箱按鈕。

編輯話題

在前端

  1. 登錄您的網站 前往您網站上的論壇
  2. 要編輯話題,請進入話題並點擊話題帖子上的編輯管理鏈接。
  3. 從那裡您可以執行下面列出的大部分內容,添加或刪除話題的標籤,以及編輯話題的帖子。

在 WordPress 後端

  1. 登錄 WordPress 後端並轉到話題 > 所有話題
  2. 點擊您要編輯的話題的編輯鏈接。

結束話題

關閉或鎖定話題不允許參與者進一步回復。鍵盤管理員和版主仍然可以回復。

在前端

  1. 登錄您的網站 前往您網站上的論壇
  2. 要關閉話題,請進入話題並點擊話題帖子上的關閉管理鏈接。您還可以通過單擊 「編輯管理」 鏈接並將 「話題狀態」 更改為 「已關閉」 來編輯話題。

在 WordPress 後端

  1. 登錄 WordPress 後端並轉到話題 > 所有話題
  2. 您將看到一個話題列表,每個話題都有一組鏈接,其中一個是關閉鏈接。
  3. 單擊要禁止任何進一步回復的任何話題的關閉鏈接。

置頂話題

在前端

  1. 登錄您的網站並訪問您網站上的論壇
  2. 如果您需要將某個話題粘貼到某個論壇或所有論壇的頂部,請進入該話題並點擊 Stick Admin Link 將該話題粘貼到論壇頂部,或者點擊(To Front)Admin Link to Super Sticky 或者把一個話題放到所有論壇的頂部。您也可以通過單擊編輯管理鏈接來編輯話題 並將話題狀態更改為粘性或超級粘性。

在 WordPress 後端

  1. 登錄 WordPress 後端並轉到話題 > 所有話題
  2. 您將看到一個話題列表,每個話題都有一組鏈接,一個是 Stick 鏈接,另一個是 (To Front) 鏈接。
  3. 單擊 您要設為 Sticky 的話題的 Stick 鏈接。要使話題超級粘,或粘在所有論壇的頂部,請單擊(到前面)鏈接。

合併話題

  1. 登錄您的網站並訪問您網站上的論壇
  2. 如果您需要合併一個話題,請進入該話題並點擊 Merge Admin Link 。
  3. 您將看到一個頁面,其中包含配置您希望如何將話題合併在一起的選項。從同一論壇的話題列表中選擇要合併的話題,並配置附加功能,例如保留原始話題的訂閱、收藏夾、話題標籤。
  4. 根據您的喜好進行配置後,單擊提交按鈕。

要將一個話題從另一個論壇合併到另一個話題,您可能需要先將該話題移動到另一個論壇,然後再從那裡合併。

刪除話題

在前端

  1. 登錄您的網站並訪問您網站上的論壇
  2. 如果您需要刪除某個話題,請進入該話題並點擊垃圾管理鏈接 將該話題放入垃圾箱。
  3. 現在您將看到垃圾箱鏈接已轉到刪除管理鏈接,您可以從那裡單擊 刪除以永久刪除該話題。

在 WordPress 後端

  1. 登錄 WordPress 後台並轉到話題 > 所有話題
  2. 您將看到一個話題列表,每個話題都有一組鏈接,其中一個是紅色垃圾鏈接。
  3. 單擊要刪除的話題的垃圾箱鏈接。現在您的話題在垃圾桶里。
  4. 現在,您可以單擊頂部的垃圾操作鏈接進行過濾並僅查看已刪除的帖子,然後 從那裡刪除或恢復您的話題。
  5. 要刪除放置在垃圾箱中的所有話題,請單擊清空垃圾箱按鈕。

將話題標記為垃圾郵件

在前端

  1. 登錄您的網站並訪問您網站上的論壇
  2. 如果您需要將某個話題標記為垃圾郵件,請進入該話題並點擊垃圾郵件管理鏈接 將該話題放入垃圾郵件隊列。

在 WordPress 後端

  1. 登錄 WordPress 後端並轉到話題 > 所有話題
  2. 您將看到一個話題列表,每個話題都有一組鏈接,其中一個是紅色垃圾郵件 鏈接。
  3. 單擊 要標記為垃圾郵件的話題的垃圾郵件鏈接。現在該話題在垃圾郵件隊列中。
  4. 單擊 頂部的垃圾郵件操作鏈接以過濾並僅查看標記為垃圾郵件的話題,然後單擊 「清空垃圾郵件」 按鈕取消垃圾郵件合法帖子或刪除放置在垃圾郵件隊列中的所有話題。

移動話題

在前端

  1. 登錄您的網站並訪問您網站上的論壇
  2. 如果您需要移動話題,請編輯該話題,並更改該話題所在的論壇。

在 WordPress 後端

  1. 登錄 WordPress 後端並轉到話題 > 所有話題
  2. 編輯要移動的特定話題
  3. 在所選話題的話題屬性中更改論壇

拆分話題

  1. 登錄您的網站並訪問您網站上的論壇
  2. 如果您需要拆分話題,請進入該話題並在您想要拆分的回復中點擊拆分管理鏈接。
  3. 您將看到一個頁面,其中包含用於配置如何拆分話題的選項。
  4. 您可以將回復拆分為另一個現有話題,或者從您拆分的回復中創建一個新話題。您可以配置附加功能,例如保留原始話題的訂閱、收藏夾、話題標籤。
  5. 根據您的喜好進行配置後,單擊提交按鈕。

編輯回復

在前端

  1. 登錄您的網站 前往您網站上的論壇
  2. 要編輯回復,請點擊 它附近的編輯管理鏈接。
  3. 從那裡您可以執行下面列出的大部分內容,並編輯回復帖子。

在 WordPress 後端

  1. 登錄 WordPress 後端並轉到回復 > 所有回復
  2. 通過您要編輯的回復點擊編輯鏈接。

移動回復

  1. 登錄 WordPress 後端並轉到回復 > 所有回復
  2. 通過您要編輯的回復點擊編輯鏈接。
  3. 您現在將看到 Reply Attributes 的元框。要更改話題,回復是通過話題更改編號 :您要將其移動到的話題的 ID 。像 Reveal IDs 這樣的插件可以幫助您輕鬆地在 Topics > All Topics 中找到話題的 ID 。
  4. 確保您要移動回復的話題位於 「論壇:回復屬性」 中列出的正確論壇中。

您還可以通過將您想要回複線程的回復的 ID 放在回復屬性中的回復: 中,將回復移動到特定回復下的線程。

刪除回復

在前端

  1. 登錄您的網站並訪問您網站上的論壇
  2. 如果您需要刪除回復,請轉到回復並點擊垃圾管理鏈接 將回復放入垃圾箱。
  3. 現在您將看到垃圾箱鏈接已轉到刪除管理鏈接,您可以從那裡單擊 刪除以永久刪除回復。

在 WordPress 後端

  1. 登錄 WordPress 後台並轉到回復 > 所有回復
  2. 您將看到一個回復​​列表,每個回復都有一組鏈接,其中一個是紅色垃圾鏈接。
  3. 單擊要刪除的回復的垃圾箱鏈接。現在您的回復已在垃圾箱中。
  4. 現在,您可以單擊頂部的 「垃圾桶」 操作鏈接以進行過濾並僅查看已刪除的帖子,然後 從那裡刪除或恢復話題。
  5. 要刪除放置在垃圾箱中的所有回復,請單擊清空垃圾箱按鈕。

將回復標記為垃圾郵件

在前端

  1. 登錄您的網站並訪問您網站上的論壇
  2. 如果您需要將回復標記為垃圾郵件,請轉到回復並點擊垃圾郵件管理鏈接 將回復放入垃圾郵件隊列。

在 WordPress 後端

  1. 登錄 WordPress 後端並轉到回復 > 所有回復
  2. 您將看到一個回復​​列表,每個回復都有一組鏈接,其中一個是紅色垃圾郵件 鏈接。單擊 要標記為垃圾郵件的回復的垃圾郵件鏈接。現在回復在垃圾郵件隊列中。
  3. 單擊 頂部的垃圾郵件操作鏈接以過濾並僅查看標記為垃圾郵件的回復,然後單擊 「清空垃圾郵件」 按鈕取消垃圾郵件合法帖子或刪除放置在垃圾郵件隊列中的所有回復。

上次修改 2021.12.26

WordPress 版本兼容性

WordPress 版本兼容性

bbPress 在最新可用版本的 WordPress 上運行時效果最佳——我們針對最新和最好的版本進行了優化。出於這個原因,bbPress 團隊強烈建議所有 WordPress 安裝保持最新。但是,我們努力保持對許多舊版 WordPress 版本的支持——通常是四個或五個主要版本。

在每個開發周期開始時,我們都會重新評估 bbPress 所需的最低 WP 版本。我們的粗略指導方針如下:

  • 如果 WordPress 版本在一年多以前就過時了,那麼它就是一個被刪除的候選者。有關 WP 發布日期的列表,請參閱 https://wordpress.org/news/category/releases/
  • 如果 WordPress 版本的使用率低於所有 WP 安裝的 5%,則它是一個強有力的刪除候選者。有關 WordPress 版本使用情況的信息,請參閱 https://wordpress.org/about/stats/

當我們說 bbPress 「支持」 給定版本的 WordPress 時,我們是什麼意思?大致:

  • bbPress 應該在 WP 版本上無錯誤地運行(即,沒有致命錯誤或 PHP 通知)。
  • 如果新版本的 bbPress 包含需要最新版本 WordPress 的功能,則應在較早的 WP 版本上正常禁用該功能。
  • WP 版本將包含在我們的自動化測試版本中

通過擴展:當我們 「放棄支持」 某個版本的 WordPress 時,這意味著我們停止將其包含在我們的構建中,停止回答與該特定 WP 版本相關的支持問題,並停止 function_exists() 在構建時針對該版本進行檢查(等)新的 bbPress 功能。放棄支持並不意味著我們會積極嘗試破解舊版本的 WP ????

上次修改 2021.12.26

搜索重定向到首頁

搜索重定向到首頁

此問題包括從論壇索引頁面上方的搜索表單、話題索引頁面或 bbPress 論壇搜索小工具在 bbPress 論壇搜索中進行的任何搜索,以某種方式重定向到您網站的首頁。

原因

這可能是用戶 在 「單一論壇 Slug」 部分的 「設置」>「論壇」 中編輯論壇搜索 slug 引起的用戶問題。一些用戶將論壇搜索變成了一些包含兩個單詞之間的空格的東西,比如 「論壇搜索」 。最後,在使用這個 slug 時會輸出一個%20 之類的 url  來代替空格,並且幾乎肯定會每次都重定向到主頁。

在某些情況下,在 「設置」>「論壇」 中禁用論壇 root slug 可能會出現相同的問題。

解決方案

將 「設置」>「論壇」 中的論壇搜索自定義 slug 編輯為不帶空格的內容,只需將空格替換為例如破折號,例如 (forum-search) 。

如果您在論壇中禁用了論壇 root slug,請使其不再出現問題,或者將論壇搜索 slug 更改為默認 slug「搜索」 以外的其他內容。

如果問題仍然存在,請確保您已完成此處所述的插件和話題問題解決方案: 故障排除

上次修改 2021.12.26

收藏夾和訂閱

收藏夾和訂閱

bbPress 2.6 改變了收藏夾和訂閱在資料庫中的存儲方式。此頁面解釋了原因,以及如果升級沒有自動為您觸發,您可能需要採取哪些步驟。

如果升級在完成之前失敗,那沒關係。您可以隨時安全地重新運行升級,Tools > Forums 而不會破壞或複製數據。

警告

對於用戶少於 10,000 的小型論壇,bbPress 將嘗試自動遷移您的收藏夾和訂閱。如果您的論壇有超過 10,000 名用戶,bbPress 知道它可能需要比可用資源更多的資源,並且會跳過升級。

解釋

bbPress 2.6 之前的所有版本都存儲了收藏夾和訂閱,wp_usermeta 每個站點上的每個用戶都有 1 個值。在具有許多用戶的多站點安裝中,這會導致低效的資料庫查詢和許多從未以全局方式使用的全局可用行。

bbPress 2.6 採用將每個個人收藏和訂閱存儲在 wp_postmeta 資料庫表中的方法。這允許進行一些不同的改進

  • 兩種方式都可以更輕鬆地查詢 – 每個用戶和站點的訂閱數,以及每個話題的訂閱數
  • 更少的行 wp_usermeta 導致 WordPress 和 bbPress 中的單方面性能改進
  • 收集用戶電子郵件地址以發送訂閱現在是一個非常簡單且快速的資料庫查詢

手動升級

如果您是少數幸運的人之一,因為您擁有 10,000 多個用戶,因此需要手動升級您的論壇,那麼您需要查看 3 個 bbPress 功能 bbpress/includes/admin/tools.php:

  • bbp_admin_upgrade_user_forum_subscriptions()
  • bbp_admin_upgrade_user_topic_subscriptions()
  • bbp_admin_upgrade_user_favorites()

這 3 個函數執行以下操作:

  • 查詢 wp_usermeta 通過 meta_key 為所有用戶誰已經收藏或訂閱
  • 循環遍歷每一行,並將其拆分為帖子 ID
  • 循環遍歷每個帖子 ID,並將用戶 ID 添加到它的元數據中,並使用適當的 meta_key
  • 如果添加的項數與原來匹配,usermeta 則刪除 2.6 之前的

您可能想要執行以下操作:

  • 增加可用於 PHP 和 Web 伺服器軟體(Apache 、 Nginx 等)的內存量
  • 增加運行這些腳本的伺服器的物理內存
  • 增加超時長度以允許這些腳本按原樣運行幾分鐘
  • 修改原始查詢以限制用戶 ID 結果循環。(通常一次 1000 個用戶是一個不錯的數字。)
  • 注釋掉 對測試的調用 add_post_meta() 和 delete_metadata_by_mid() 試運行

對於添加的上下文,這些是 bbPress 團隊用來升級 BuddyPress.org 、 bbPress.org 、 WordCamp.org 和 WordPress.org 的相同腳本和技術。它們工作正常,而且工作得很好,但我們理解移動數據是可怕的,並希望您對幕後發生的事情做好準備並感到舒適。

上次修改 2021.12.26

升級論壇

升級論壇

隨著 bbPress 的改進,偶爾需要升級資料庫,但有些論壇太大而無法自動升級。使用以下工具手動運行升級常式。

「升級論壇」 工具位於:
WordPress 儀錶盤 > 工具 > 論壇 > 升級論壇
(/wp-admin/tools.php?page=bbp-upgrade)

這些工具會產生大量的資料庫開銷,因此一次只能運行 1 個修復作業。

  • 升級用戶話題參與度
  • 升級用戶話題收藏夾
  • 升級用戶話題訂閱
  • 升級用戶論壇訂閱
  • 從用戶元中刪除收藏夾
  • 從用戶元中刪除話題訂閱
  • 從用戶元中刪除論壇訂閱
  • 升級 BuddyPress Group 論壇關係

上次修改 2021.12.26

定製

定製

有很多方法可以通過樣式設置或僅向您的站點添加額外功能來自定義您的 bbPress,因此請繼續學習如何自定義您的 bbPress 論壇。

安裝插件

bbPress 帶有許多插件來擴展 bbPress 論壇的功能。無論您是想要更好的支持論壇功能,還是只是通過投票或引用來增強社區體驗。您可以在 bbpress.orgwordpress.org 的插件部分中搜索大量 bbPress 插件。

開發插件

您也可以決定為您的 bbPress 論壇創建一個自定義的 bbPress 插件,所以希望這個鏈接列表能幫助您做到這一點。

您還可以分叉或貢獻任何現有的 bbPress 插件。

安裝主題

雖然 bbPress 可以處理大多數主題,但可能需要一些工作才能這樣做。安裝主題時,建議您找到一個支持 bbPress 的 WordPress 主題。

開發主題

無論是為 bbPress 創建子主題還是您自己的自定義主題,創建主題都將為您提供最大的靈活性來自定義 bbPress 。

自定義的其他步驟

添加代碼片段

代碼片段通常是一小段代碼,可用於調整您的網站或為您的 bbPress 網站添加小而精巧的功能。這些片段需要放置在您的子主題的 functions.php 文件或功能插件中。

有一部分用戶提交的代碼片段應該有助於向您的 bbPress 站點添加一些基本功能或調整。

bbPress 的論壇提供了從社區來幫助您添加任何其他種類的額外功能添加到您的 bbPress 的網站很多代碼片斷。因此,您可能希望在論壇中進行搜索並嘗試找到您要查找的內容。

許多 bbPress 代碼片段可能會發布在許多代碼粘貼站點,例如 Github 的 GistPastebin,因此這些站點可能值得一看。

設計您的論壇

您可能想要修改 bbPress 的外觀,那麼 css 就是要走的路!建議從 bbPress 插件中複製 bbpress.css 文件並將其放置在名為 「css」 的文件夾中的子主題中,或者至少安裝一個自定義 css 插件來放置小的 css 片段。希望列出的這些其他鏈接將幫助您更好地設計您的論壇。

上次修改 2021.12.26

存儲的資料庫數據

存儲的資料庫數據

用戶

所有用戶和用戶數據都存儲在這些表中。

  • wp_users
  • wp_usermeta

內容

bbPress 在這些表中安裝和存儲所有論壇、話題和回復文章類型及其數據。

  • wp_posts
  • wp_postmeta

bbPress 設置以_bbp_此處為前綴並存儲在此處。

  • wp_options

標籤

bbPress 安裝話題標籤,它們的數據都存儲在這些表中。

  • wp_terms
  • wp_term_relationships
  • wp_term_taxononmy

上次修改 2021.12.25

提高性能

提高性能

性能是任何網站的關鍵,希望本指南能讓您走上正確的軌道,以優化您的網站以在您的社區發展的同時執行。

主機託管

您擁有的伺服器是快速網站最重要的一步,整體性能從您的主機伺服器和硬體開始。

確保您擁有功能強大且功能強大的伺服器,例如 Apache,或者使用 Nginx,因為它非常高效,但任何可以運行 PHP 或 MySQL 的伺服器都應該沒問題。

如果您的社區開始大幅增長,請將您的託管環境升級到虛擬專用伺服器或更好的專用伺服器,以便每天處理大量用戶和帖子。雖然可以在共享託管環境中運行 bbPress,並且對於小型社區來說效果很好,但您的社區發展得越多,您的站點就越慢,共享託管就越不是一個可行的選擇。

bbPress 和 WordPress 在豐富的託管環境中工作得最好。要為您的主機尋找推薦的解決方案,您可以查看此特色 WordPress 主機列表

操作碼緩存

顯著提高性能的一種極好方法是在您的伺服器上安裝 Opcode 緩存器。這可以通過緩存來自先前請求的 PHP 操作碼來提高頁面載入和每秒請求數。

要安裝 Opcode 緩存器,您需要聯繫您的託管服務提供商並要求他們為您安裝它,或者詢問他們是否有幫助您在伺服器上安裝它的指南。

請注意,在大多數情況下,您將無法在共享主機上安裝操作碼緩存器,因為運行它需要大量內存。

以下是眾所周知的 Opcode 緩存器列表:

對象緩存

對象緩存是緩存複雜的 SQL 查詢,因此它們不會在頁面載入中多次執行。使用對象緩存器將使用 WordPress 緩存 API 緩存任何內容,這將阻止 WordPress 緩存到默認選項表,而是使用您安裝的任何對象緩存後端。

然後,您需要選擇要使用的持久緩存類型。您還可以使用其中一些操作碼緩存器來進行對象緩存。

也可以在您站點上的內存對象緩存器中使用這些。

要使對象緩存與 WordPress 一起使用,您需要安裝一個插件,該插件會將對象緩存插入文件添加到您的 WordPress 站點。有多個對象緩存後端插件會添加這個對象緩存插入文件,例如這個用於 APC 或這個用於 Memcached  ,W3 Total Cache 也支持其中的大部分。

對於多伺服器設置,您可能需要考慮使用 Memcached 。

在共享伺服器上,您可以使用磁碟來存儲經常訪問的數據,但這可能會導致問題並實際上降低站點的速度。

頁面緩存

頁面緩存非常適合您的網站頁面、博客文章和網站首頁,但由於論壇高度動態且用戶不斷更新,頁面緩存實際上取決於您如何設置 bbPress 論壇。

如果您只允許用戶在登錄時發帖,最好只為訪客用戶提供緩存。如果您在插件中找到設置緩存刷新的選項,請確保將其設置為較短的時間,例如大約一兩個小時。同樣在 bbPress 文章類型更新後,大多數 bbPress 兼容緩存插件將刷新緩存,一切都應該再次新鮮。

如果您允許用戶在未註冊到您的站點的情況下發帖,頁面緩存可能不是非常實用的解決方案。因此,建議從頁面緩存中排除 bbPress 論壇頁面,以便您的論壇頁面不會向訪客用戶顯示過時的信息。如果您的論壇非常活躍,您也可以考慮這樣做。

要禁止頁面緩存中的論壇頁面,請進入您最喜歡的緩存插件並將這些字元串添加到被拒絕的頁面/字元串以緩存設置。

如果您為您的論壇保留了論壇 root slug,您可以將此論壇字元串用於大多數 bbPress 頁面,以及主題存檔的主題字元串。

/forums/
/topics/

如果您在論壇設置中禁用了論壇 root slug,則可以使用這些字元串集。

/forums/
/forum/
/topics/
/topic/
/reply/

如果您在論壇設置中設置了自定義 slug,您可以將我放置的字元串替換為您的自定義字元串。

為了獲得更好的頁面緩存性能,可以允許使用操作碼緩存器 Redis 。或 Memcached 將您的頁面存儲在內存中,但請記住,論壇往往有更多可緩存的頁面,您可能需要密切關注網站上的 RAM 使用情況。

優化您的資料庫

這是可選的。

當刪除帖子、頻繁編輯帖子、將帖子標記為垃圾郵件時,您的資料庫將開始積累大量額外數據。即使每個部分單獨可能是幾個位元組的數據,一段時間後這些數據將開始累加並可能影響您的伺服器從資料庫表中檢索信息的時間。通過清理和刪除您可能不需要的數據(例如佔用資料庫的垃圾郵件),優化資料庫會略微提高性能並減小資料庫大小。

雖然您可以使用 SQL 命令 OPTIMIZE TABLE 優化資料庫表,或者通過選擇每個表並從下拉菜單中選擇優化表來運行優化 phpMyAdmin 中的資料庫表的功​​能,但您只需使用一個方便的 WordPress 插件來優化您的資料庫。安裝 WP-DBManagerWP-Sweep 等插件或任何其他替代品,將允許您優化大部分資料庫。

使用這些插件之一優化資料庫時,您可能會看到刪除此類數據的選項。我只是要告訴您在我看來可能很重要的選項,為什麼您可能不運行它,以及為什麼運行一個選項可能有用。我還建議至少一兩個月優化一次資料庫。

在執行任何操作之前,建議您在運行任何選項之前執行資料庫備份,因為刪除數據是永久性的。

  • 刪除修訂——雖然這可能很有用,尤其是當您瘋狂地編輯您的帖子時,bbPress 使用 WordPress 中的帖子修訂系統來進行話題和回復編輯日誌記錄。如果您想在您的帖子中保留編輯日誌,其他插件可能是自定義 CSS 插件的修訂系統。如果您覺得可能會丟失一些重要的東西,請不要運行它。
  • 刪除已刪除/已刪除的帖子- 如果您認為您刪除的任何類型的帖子(包括話題、回復和博客帖子)都應該被刪除而不會出現任何錯誤,您可以運行此程序。
  • 刪除垃圾郵件- 此選項通常包括垃圾郵件評論。垃圾評論可以很好地擴大您的資料庫,它們通常每月至少會被 WordPress 自動刪除一次,但使用這些插件可以縮短時間。

由於您可能有大量垃圾郵件話題和回復,因此請確保如果要運行此功能,您最好刪除所有回復和話題垃圾郵件。

  1. 轉到 WordPress 後端中的回復 > 所有回復或話題 > 所有話題。
  2. 單擊垃圾郵件操作鏈接,您可以查看所選文章類型的所有垃圾郵件。
  3. 現在點擊清空垃圾郵件按鈕刪除所有文章類型的垃圾郵件。
  • 優化表- 在 WP-Sweep 和 WP-DBManger 中,這應該類似於 phpMyAdmin 優化資料庫表的方式。

核心代碼改進

就像生活中的任何事情一樣,總是有更多的改進空間。 bbPress 2.6 版將啟動一些性能改進,任何能夠幫助測試並在 bbPress trac 中為現有 trac 票證創建補丁的人,或者只是為 bbPress 貢獻任何可能的代碼改進建議的人都將不勝感激。

提高性能的其他方法

  • 刪除不必要的對象、功能和插件——只使用您需要的。
  • 將數據卸載到外部源——使用 CDN 或附加伺服器來保存靜態內容,可以大大減少帶寬、伺服器負載並加快您的網站速度。
  • 縮小或組合您的網站 CSS 和 JS – 縮小 JavaScript 和 CSS 可以減少文件的大小,而組合將最大限度地減少對多個文件的請求。
  • 啟用瀏覽器緩存
  • 頭部的 CSS 和頁腳的 JS
  • 優化圖像– 如果您的用戶使用 bbPress 插件在您的論壇中上傳了大量 Gif 和 JPEG,您會注意到這些圖像會減慢您的主題載入時間。啟用某種圖像優化將減小這些圖像的大小並使帶有圖像的帖子載入速度更快。
  • 使用延遲載入– 使用延遲載入插件(如 Lazy LoadRocket Lazy Load)將最小化請求並僅在用戶可見時顯示圖像。
  • 使用 Gzip 壓縮

其他資源

上次修改 2021.12.26