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 为该服务提供了多种计划。

常见任务

常见任务

移动论坛

可以从不同的父论坛或类别移动论坛。为达到这个;

  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. 单击 顶部的垃圾邮件操作链接以过滤并仅查看标记为垃圾邮件的回复,然后单击 「清空垃圾邮件」 按钮取消垃圾邮件合法帖子或删除放置在垃圾邮件队列中的所有回复。

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 ????

搜索重定向到首页

搜索重定向到首页

此问题包括从论坛索引页面上方的搜索表单、话题索引页面或 bbPress 论坛搜索小工具在 bbPress 论坛搜索中进行的任何搜索,以某种方式重定向到您网站的首页。

原因

这可能是用户 在 「单一论坛 Slug」 部分的 「设置」>「论坛」 中编辑论坛搜索 slug 引起的用户问题。一些用户将论坛搜索变成了一些包含两个单词之间的空格的东西,比如 「论坛搜索」 。最后,在使用这个 slug 时会输出一个%20 之类的 url  来代替空格,并且几乎肯定会每次都重定向到主页。

在某些情况下,在 「设置」>「论坛」 中禁用论坛 root slug 可能会出现相同的问题。

解决方案

将 「设置」>「论坛」 中的论坛搜索自定义 slug 编辑为不带空格的内容,只需将空格替换为例如破折号,例如 (forum-search) 。

如果您在论坛中禁用了论坛 root slug,请使其不再出现问题,或者将论坛搜索 slug 更改为默认 slug「搜索」 以外的其他内容。

如果问题仍然存在,请确保您已完成此处所述的插件和话题问题解决方案: 故障排除

收藏夹和订阅

收藏夹和订阅

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 的相同脚本和技术。它们工作正常,而且工作得很好,但我们理解移动数据是可怕的,并希望您对幕后发生的事情做好准备并感到舒适。

升级论坛

升级论坛

随着 bbPress 的改进,偶尔需要升级数据库,但有些论坛太大而无法自动升级。使用以下工具手动运行升级例程。

「升级论坛」 工具位于:
WordPress 仪表盘 > 工具 > 论坛 > 升级论坛
(/wp-admin/tools.php?page=bbp-upgrade)

这些工具会产生大量的数据库开销,因此一次只能运行 1 个修复作业。

  • 升级用户话题参与度
  • 升级用户话题收藏夹
  • 升级用户话题订阅
  • 升级用户论坛订阅
  • 从用户元中删除收藏夹
  • 从用户元中删除话题订阅
  • 从用户元中删除论坛订阅
  • 升级 BuddyPress Group 论坛关系

定制

定制

有很多方法可以通过样式设置或仅向您的站点添加额外功能来自定义您的 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 片段。希望列出的这些其他链接将帮助您更好地设计您的论坛。

存储的数据库数据

存储的数据库数据

用户

所有用户和用户数据都存储在这些表中。

  • wp_users
  • wp_usermeta

内容

bbPress 在这些表中安装和存储所有论坛、话题和回复文章类型及其数据。

  • wp_posts
  • wp_postmeta

bbPress 设置以_bbp_此处为前缀并存储在此处。

  • wp_options

标签

bbPress 安装话题标签,它们的数据都存储在这些表中。

  • wp_terms
  • wp_term_relationships
  • wp_term_taxononmy

提高性能

提高性能

性能是任何网站的关键,希望本指南能让您走上正确的轨道,以优化您的网站以在您的社区发展的同时执行。

主机托管

您拥有的服务器是快速网站最重要的一步,整体性能从您的主机服务器和硬件开始。

确保您拥有功能强大且功能强大的服务器,例如 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 压缩

其他资源