修改 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 现在将使用此文件而不是默认文件,您可以修改此文件。

删除 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 现在已从您的站点中卸载。

单站点

单站点

自动插件安装

  1. 登录您的 WordPress 后端。
  2. 转到 插件 > 添加插件。
  3. 您将看到特色插件的 bbPress 部分,您可以从那里安装,或者您可以在搜索栏中键入 「bbPress」 并按 Enter 键来搜索插件。
  4. 单击立即安装。
  5. 现在启用 bbPress 插件。

手动插件安装

使用 WordPress 的插件上传器

  1. https://bbpress.org/download/ 或 https://wordpress.org/plugins/bbpress/下载 bbPress 插件 。
  2. 转到 插件> 添加插件
  3. 然后单击顶部的上传插件按钮。
  4. 单击 「选择文件」,然后选择您下载的 bbPress zip 文件。
  5. 点击立即安装,现在启用。

使用 FTP

  1. https://bbpress.org/download/ 或 https://wordpress.org/plugins/bbpress/下载 bbPress 插件 。
  2. 下载文件后,解压,将插件文件夹解压到桌面
  3. 您可以启动您喜欢的 FTP 客户端,如 FileZilla
  4. 在您的计算机上找到并打开包含新插件的文件夹。
  5. 将 bbPress 文件夹从您的计算机上传到/wp-content/plugins 。
  6. 登录您的 WordPress 网站。
  7. 转到 插件 > 已安装插件。
  8. 单击 bbPress 插件上的启用。

详细的模板层次结构

详细的模板层次结构

[撰写中…]

用户个人资料模板

single-user-[nicename].php // 单用户 nicename

single-user-[user_id].php // 单用户 ID

single-user.php // 单用户

user.php // 用户

用户资料编辑模板

single-user-edit-[nicename].php // 单用户编辑 nicename

single-user- edit- [user_id].php // 单用户编辑 ID

single-user-edit.php // 单用户编辑

user-edit. php // 用户编辑

user.php

用户收藏夹模板

single-user-favorites-[nicename].php // 单用户收藏 nicename

single-user-favorites-[user_id].php // 单用户收藏 ID

favorites-[nicename].php // 收藏夹 nicename

favorites-[user_id] .php // 收藏夹 ID

favorites.php // 收藏夹

user.php

用户订阅模板

single-user-subscriptions-[nicename].php // 单用户

single-user-subscriptions-[user_id].php // 单用户

subscriptions-[nicename].php // 订阅 nicename

subscriptions-[user_id] .php // 订阅 ID

subscriptions.php // 订阅

user.php

视图模板

single-view-[view_id].php // 单视图 ID

view-[view_id].php // 视图 ID

single-view.php // 单视图

view.php

搜索模板

page-forum-search.php // 单次搜索

forum-search.php // 搜索

单个论坛模板

single-[forum].php// 单个论坛

论坛存档模板

archive-[forum].php // 论坛存档

论坛编辑模板

single-[forum]-edit.php // 单个论坛编辑

单个话题模板

single-[topic].php

话题存档模板

archive-[topic].php // 话题存档

话题编辑模板

single-[topic]-edit.php // 单个话题编辑

话题拆分模板

single-topic-split.php // 话题拆分

话题合并模板

single-[topic]-merge.php // 话题合并

单个回复模板

single-[reply].php

回复编辑模板

single-[reply]-edit.php // 单个回复编辑

回复移动模板

single-[reply]-move.php // 回复移动

话题标签模板

taxonomy-[tt_slug].php // 单话题标签 slug

taxonomy-[tt_id].php // 单话题标签 ID

话题标签编辑模板

taxonomy-[tt_slug]-edit.php // 单话题标签编辑 slug

taxonomy-[tt_id]-edit.php // 单话题标签编辑 ID

配置 bbPress

配置 bbPress

启用后,bbPress 会将菜单项添加到 WordPress 后端菜单。这些是:

  1. bbPress 创建三种自定义文章类型并将它们添加到导航菜单:论坛、话题和回复。使用这些菜单项来创建和管理您的论坛。
  2. 在设置 > 论坛中找到的子菜单。自定义这些设置以更好地控制 bbPress 。

这些指南将帮助您配置和设置一切。

创建内容

这将帮助您为 bbPress 站点创建论坛、话题和回复等内容。

论坛设置

这将帮助您为论坛配置 bbPress 设置。

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;
}
}

导入疑难解答

导入疑难解答

特定论坛导入

确保您还检查每个论坛导入器法典页面以了解与每个论坛相关的特定问题,列表可在此处找到。

导入被 「卡住」

导入话题或回复时,导入可能会 「卡住」 并且导入将不再继续导入。

这些类型的错误通常是由于该帖子中的某些编码问题造成的。有时这是从在某个时候完成的编码转换为 UTF8 。不管它是什么,如果不对查询设置时间限制并将差异一分为二,直到我们可以缩小违规条目的范围并跳过它,这几乎是不可能检测到的。因为查询自然会花费很长时间,并且会导致丢失数据,所以我对这种方法不满意。

解决方法是查找并删除有问题的话题或回复,这既耗时又棘手,但这是现阶段的唯一方法。

这是我如何调试它并找到有问题的话题/回复:

  • 导入挂起后,单击 stop,记下它的位置,例如 Converting 11,299 – 11,300
  • start 再次单击,导入将从停止的地方继续
  • 如果它再次挂起,请注意它再次达到的位置
  • 完成后制作源数据库的新副本
  • 现在删除数据库中所有不在导入过程中失败的行范围内的行
  • 使用此数据库执行全新导入,并将 「行数限制」 设置设置为 「1」
  • 导入应该挂在有问题的话题/回复上
  • 再次,记下它的话题/回复
  • 点击停止,再次点击开始继续
  • 一旦您有您的违规者名单并且导入完成,从数据库中删除这些行并再次测试以确保它完成而不会挂起
  • 现在回到您的完整数据库 (可能是原始数据库的副本) 从数据库中删除这些相同的行并再次运行导入

调整 MySQL

当您有非常大的论坛要导入时,可能需要很长时间。

@ezyridah 执行了 100 万多条消息的 MyBB 导入,接近 4 万个话题和 400 多个成员,耗时约 48 小时,他添加了一些自定义 PHP 和 MySQL 调整,有助于加快速度,您可以看到他使用了哪些设置在这里,请注意,这是非常先进的,不适合胆小的人。

西里尔字母用户名

如果您需要在导入之前导入用户 'Cyrillic' 安装并启用 @SergeyBiryukovAllow Cyrillic Usernames

安装之前

安装之前

在您的站点上安装 bbPress 之前,请阅读以下指南,因为它们包含有关安装前要做什么的有用信息,以及有关 bbPress 及其在您站点上安装的内容的信息。

备份您的数据库和文件

备份您的站点非常重要,建议在您的站点进行任何重大更改之前进行备份。在本指南中,您将学习如何手动或使用自动化服务备份您的站点。

系统和服务器要求

在您的站点上运行任何新的 PHP 软件之前,了解服务器要求总是好的。

WordPress 版本兼容性

bbPress 在最新可用版本的 WordPress 上运行时效果最佳。

存储的数据库数据

本指南将向您展示 bbPress 在 WordPress 中存储其所有数据的位置。一些第一次从不同论坛解决方案迁移的用户通常对了解这些信息感兴趣。

bbPress 用户角色和能力

bbPress 内置了几个用户角色,每个角色具有特定的功能,以便他们可以管理特定区域或被授予在 bbPress 中执行特定操作的能力。本指南将列出有哪些角色以及它们的作用。