bbPress 样式参考

bbPress 样式参考

本指南将向您展示新 bbPress 论坛的区域,您可以使用 CSS 以及 bbPress 插件中使用的类和选择器来设置每个区域的样式。

设计您的论坛

这些可以添加到您的 css 中,或添加到 bbpress.css 的自定义版本中 – 请参阅设置 bbpress 论坛的分步指南第 2 部分了解更多信息。

论坛婴儿床

论坛

bbPress 论坛中的所有内容

这是用于 bbPress 论坛所有部分的 CSS 。根据您的需要增加字体大小。

#bbpress-forums {
background: transparent;
clear: both;
margin-bottom: 20px;
overflow: hidden;
font-size: 12px;
}

1. 论坛页眉和页脚

这是显示作者、帖子和声音等标签的内容。

#bbpress-forums li.bbp-header,
#bbpress-forums li.bbp-footer {
 background: #f3f3f3;
 border-top: 1px solid #eee;
 font-weight: bold;
 padding: 8px;
 text-align: center;
}


#bbpress-forums li.bbp-header {
 background: #eaeaea;
}

2. 回复标题

#bbpress-forums div.bbp-reply-header {
    background-color: #f4f4f4;
}

3. 模板通知信息

div.bbp-template-notice.info {
    border: #cee1ef 1px solid;
    background-color: #f0f8ff;
}

4. 话题/回复背景

赔率,即使如此回复也有交替的颜色

#bbpress-forums div.even,
#bbpress-forums ul.even {
 background-color: #fff;
}


#bbpress-forums div.odd,
#bbpress-forums ul.odd {
 background-color: #fbfbfb;
}

如果话题很粘或超级粘,那么

.bbp-topics-front ul.super-sticky,
.bbp-topics ul.super-sticky,
.bbp-topics ul.sticky,
.bbp-forum-content ul.sticky {
 background-color: #ffffe0 !important;
 font-size: 1.1em;
}

自定义关闭话题文本的颜色。

#bbpress-forums .status-closed,
#bbpress-forums .status-closed a {
 color: #ccc;
}

每个线程的线程回复边距。

#bbpress-forums ul.bbp-threaded-replies {
 margin-left: 50px;
}

5. 各种文字

这些通常继承自您的主题。

但是,您可以使用修改内容

#bbpress-forums .bbp-topic-content,
#bbpress-forums .bbp-reply-content {
    font-size: 12px;
}

上面的代码不在 bbpress.css 中,因此如果需要,请添加它,或放入您的 .css 中,请参阅顶部提到的指南以获取更多信息

6. 管理链接

span.bbp-admin-links {
 float: right;
 color: #ddd;
}


span.bbp-admin-links a {
 color: #bbb;
 font-weight: normal;
 font-size: 10px;
 text-transform: uppercase;
 text-decoration: none;
}

7. 模板通知

div.bbp-template-notice,
div.indicator-hint {
 border-width: 1px;
 border-style: solid;
 padding: 0 0.6em;
 margin: 5px 0 15px;
 border-radius: 3px;
 background-color: #ffffe0;
 border-color: #e6db55;
 color: #000;
 clear: both;
}
div.bbp-template-notice a {
 color: #555;
 text-decoration: none;
}
 div.bbp-template-notice a:hover {
 color: #000;
 }
 div.bbp-template-notice.info {
 border: #cee1ef 1px solid;
 background-color: #f0f8ff;
 }
 div.bbp-template-notice.important {
 border: #e6db55 1px solid;
 background-color: #fffbcc;
 }
 div.bbp-template-notice.error,
 div.bbp-template-notice.warning {
 background-color: #ffebe8;
 border-color: #c00;
 }
 div.bbp-template-notice.error a,
 div.bbp-template-notice.warning a {
 color: #c00;
 }
 div.bbp-template-notice p {
 margin: 0.5em 0 6px 0 !important;
 padding: 2px;
 font-size: 12px;
 line-height: 140%;
 }

8. 从您的主题继承的面包屑和链接颜色

9. 其他造型功能

9.1 提交按钮

正在寻找一种方法来更改 bbpress 、更大、颜色中的提交按钮......?

#bbpress-forums .submit {
    background-color: #a0668d;
    color: #FFFFFF;
    float: center;
    vertical-align: middle;
    border-radius: 10px;
    height: 35px;
    width: 80px;
    font-size: 18px;
}

并更改为您想要的!

10. 从最近的话题小工具和新鲜度中删除头像

widget_display_topics .bbp-author-avatar {
    display: none ! important;
}


.bbp-topic-freshness-author  .bbp-author-avatar {
    display: none ! important;
}

bbp_topic_author_link

bbp_topic_author_link

bbp_topic_author_link
Codex Home → bbp_topic_author_link
Description
The 『bbp_topic_author_link』 function is used to display the current topic author』s user role, avatar and username linked to their profile
Where is it used
Templates: content-single-topic-lead.php
How to use it

$args (optional) – Accepts an array of arguments to configure display ( post_id, link_title, type, size, sep, show_role )
Uses bbp_get_topic_author_link()
Sample code example

Displays the linked avatar and username for the current topic author
'
', 'show_role' => true ) ); ?>
Displays the current topic author and user role separated by an HTML
element
'
', 'show_role' => true, 'size' => 32 ) ); ?>
Displays the current topic author and user role separated by an HTML
element and sets their avatar to a size of 32px wide and 32px tall
'
', 'show_role' => false, 'type' => 'avatar' ) ); ?>
Displays only the current topic author user』s avatar without their display name or user role
'
', 'show_role' => false, 'type' => 'name' ) ); ?>
Displays only the current topic author user』s display name without their avatar or user role
Related
bbp_author_link()
bbp_reply_author_link()
bbp_show_lead_topic()

布局和功能 - 您可以使用的示例

布局和功能 - 您可以使用的示例

您可以使用 WordPress 和 bbPress 提供的钩子和过滤器以多种方式自定义和扩展 WordPress 和 bbPress,还可以将一些 CSS 应用到您的论坛或主题。

下面是一些常用的自定义 PHP 和 CSS 代码片段列表,这些代码片段可能对社区用户自定义他们现有的 bbPress 论坛有用。

如果您发现列出的示例似乎不起作用,您想建议另一个有用的示例,或者使用不同/更好的方法来编辑当前的最终功能,然后请进入支持论坛并在论坛请求和反馈

1. 更改论坛列表的显示方式

默认看起来像: 论坛2

改成 : 论坛3

默认情况下,此元素使用 CSS 设置样式。

#bbpress-forums .bbp-forums-list li {
display: inline;
}

将此 CSS 代码片段粘贴到您的子主题的 style.css 并更改 display:inline 为 display:block 将实现此布局。

您也可以改用 PHP 代码片段,并将以下函数放入您的子主题 functions.php 文件中。

//create vertical list subforum layout
function custom_bbp_sub_forum_list() {
  $args['separator'] = '
';
  return $args;
}
 add_filter('bbp_after_list_forums_parse_args', 'custom_bbp_sub_forum_list' );

2. 从论坛列表中删除话题/回复计数

默认 :

论坛c
更改为:
论坛b
您可以更改 loop.single.forum.php,如 https://codex.bbpress.org/step-by-step-guide-to-setting-up-a-bbpress-forum-part-3/ 所示或者

将以下内容放入您的子主题 functions.php 文件中。

function remove_counts() {
    $args['show_topic_count'] = false;
    $args['show_reply_count'] = false;
    $args['count_sep'] = '';
return $args;
}
add_filter('bbp_before_list_forums_parse_args', 'remove_counts' );

3. 向登录小工具添加 「修改个人资料/密码」

虽然您可以单击 bbPress 登录小工具中显示的头像或您的用户名转到您的个人资料,然后从那里单击编辑链接来编辑您的个人资料,但这对您的某些用户来说可能并不那么明显。

安装这个插件 RKK Login Widget,它几乎与默认的 bbPress Login Widget 完全相同。只需将 (RKK) 登录小工具放置到侧边栏之一,您的登录小工具就会与此类似。

论坛

根据需要自定义或编辑插件。

4. 关闭或更改面包屑

要删除论坛中的面包屑,请确保将此功能添加到子主题或功能插件中的 functions.php 文件中。

add_filter( 'bbp_no_breadcrumb', '__return_true' );

要自定义您要显示的特定面包屑链接的布局,请将其添加到您的子主题 function.php 文件中。

function mycustom_breadcrumb_options() {
    // Home - default = true
    $args['include_home']    = false;
    // Forum root - default = true
    $args['include_root']    = false;
    // Current - default = true
    $args['include_current'] = true;


    return $args;
}
add_filter('bbp_before_get_breadcrumb_parse_args', 'mycustom_breadcrumb_options');

5. 移除论坛搜索功能

如果您想删除搜索栏 (有些人喜欢要么排除它,要么把它放在侧边栏中)

默认情况下,搜索表单将显示如下。
论坛

这是之后的结果。
论坛

然后只需更改仪表盘> 设置> 论坛功能中的设置并取消勾选
Allow forumwide search 。

6. bbpress 后加载样式表

介绍:当 WordPress 加载样式表时,它们会先加载所有 theme.css 文件,然后再加载插件 css 。这样插件 css 的优先级高于您的 css,唯一可以覆盖它的方法是使用 !important 。众所周知,这是一种不好的做法。

此外,您可以在您的主题中创建自己的 bbpress.css ,但这意味着需要处理更多文件 (尽管这是最干净的解决方案) 。这是执行此操作的另一种方法:

将此代码粘贴到您的子主题 functions.php 文件中。

/** * load custom bbpress css after bbp default css */ wp_enqueue_style( 'custom-bbpress', get_stylesheet_directory_uri() . '/css/custom-bbpress.css',array('bbp-default'),'1.1','all');

7. 如何从模板中删除所有面包屑并将它们设置在页面顶部?

由 Markic 提交并感谢

简介:我们中的许多人正在使用标题中的现有面包屑系统创建自己的主题。但是 bbPress 有自己的想法在哪里显示面包屑,有时在页面顶部,有时在搜索表单下方,有时在标题下方。这是您可以快速更改的方法。

1. 如果还没有,请在主题的根文件夹中创建 「bbpress.php」 。
2. 添加

<div class="truebreadcrumbs"><?php bbp_breadcrumb(); ?></div>

3. 添加此 CSS:

div.bbp-breadcrumb {
 display: none; /*this will hide all breadcrumbs*/
 }


.truebreadcrumbs div.bbp-breadcrumb {
 display: block; /*this will display breadcrumbs you've created*/
 }

当然,HTML 仍然会生成所有的面包屑,而 css 会隐藏不需要的面包屑,但这是最简单的方法,无需进入模板。

8. 将 「编辑个人资料」 添加到 wordpress 菜单

大多数 bbPress 用户都有侧边栏,并使用小工具来控制登录和个人资料更改。其他人则依赖于用户知道如果点击他们的头像或用户名,那么他们就可以编辑他们的个人资料。

此解决方案允许您将 「编辑个人资料」 添加到您的 wordpress 菜单中——这仅在用户登录时显示为菜单项。

将以下内容添加到您的函数文件中

// Filter wp_nav_menu() to add profile link
add_filter( 'wp_nav_menu_items', 'my_nav_menu_profile_link' );
function my_nav_menu_profile_link($menu) {
    if (!is_user_logged_in())
        return $menu;
    else
        $current_user = wp_get_current_user();
        $user=$current_user->user_nicename ;
        $profilelink = '<li><a href="/forums/users/' . $user . '/edit">Edit Profile</a></li>';
        $menu = $menu . $profilelink;
        return $menu;


}

9. 将社交媒体联系人添加到 bbPress 个人资料

感谢 nicmare 提供这个方便的提示。

您可以通过将这些添加到 contactmethods 来添加和删除社交媒体联系人。

以下示例函数添加了 twitter 、 facebook 、 google+ 和 youtube,但删除了
目标、 yabber 和 yim 。

function add_extra_contactmethod( $contactmethods ) {
// Add new ones
$contactmethods['twitter'] = 'Twitter';
$contactmethods['facebook'] = 'Facebook';
$contactmethods['googleplus'] = 'Google Plus';
$contactmethods['youtube'] = 'Youtube';


// remove unwanted
unset($contactmethods['aim']);
unset($contactmethods['jabber']);
unset($contactmethods['yim']);


return $contactmethods;
}
add_filter('user_contactmethods', 'add_extra_contactmethod');

10. 缩短新鲜度的措辞

此代码缩短新鲜度取出分钟

只需将其放入您的函数文件中

//function to shorten freshness display from say '1 month, 2 weeks' to '1 month'
function short_freshness_time( $output) {
$output = preg_replace( '/, .*[^ago]/', ' ', $output );
return $output;
}
add_filter( 'bbp_get_time_since', 'short_freshness_time' );
add_filter('bp_core_time_since', 'short_freshness_time');

11. 简单地在菜单中添加登录/注销

为用户添加用于登录/注销、注册或恢复其密码的菜单项到您的站点菜单非常有用,尤其是在您决定不使用 bbPress 侧边栏登录小工具的情况下。

将以下 php 代码片段粘贴到您的子主题的 functions.php 文件中。

add_filter( 'wp_nav_menu_items', 'rkk_add_auth_links', 10 , 2 );
function rkk_add_auth_links( $items, $args ) {
 if ( is_user_logged_in() ) {
 $items .= '<li><a href="'. wp_logout_url() .'">Log Out</a></li>';
 }
 elseif ( !is_user_logged_in() ) {
 $items .= '<li><a href="'. site_url('wp-login.php') .'">Log In</a></li>';
 $items .= '<li><a href="'. site_url('wp-login.php?action=register') .'">Register</a></li>';
 $items .= '<li><a href="'. site_url('wp-login.php?action=lostpassword') .'">Lost Password</a></li>';
 }
 return $items;
}

您可以根据自己的喜好自定义此功能。如果您想将某些 url 链接到自定义前端表单而不是默认的 WordPress 登录表单,您可以进行这样的简单更改,例如。

site_url('wp-login.php') 对此 site_url('/login/')

如果您想在注销后重定向到自定义 url 。

wp_logout_url() 把这个改成这个 wp_logout_url( site_url('/logout/') )

或者,如果您想在特定菜单中显示这些菜单项,请在 之后的函数中编辑两个条件 is_user_logged_in() 。

像这样添加到现有的条件中,is_user_logged_in() && $args->theme_location == 'primary-menu'.

上面的代码将在您的功能条件中显示特定菜单中的菜单项,其中主题位置通常是菜单段。要查找此功能的菜单的 slug/主题位置搜索,通常位于主题 functions.php 文件中 register_nav_menu() 。有关了解 register_nav_menu() 函数的更多信息,请参阅 WordPress 指南导航菜单

12. 添加模态 (弹出) 登录

这非常好,说明将其添加到菜单中,并根据需要使用登录/注销。

登录看起来像这样

模态登录3

有不同的风格可供选择,您可以设计自己的风格。

说明可以在这里找到

13. 防止关闭的话题变灰

默认情况下,关闭回复的话题是 「灰色的」 。但通常您只是想停止发帖,最常见的是针对论坛顶部的热门话题。

将此代码添加到主题中的 css 或修改主题 css 文件夹中的 bbpress.css 。

#bbpress-forums .status-closed,
#bbpress-forums .status-closed a {
  color: #aaa !important;
}

14. 添加新的 bbpress 角色

您可以添加新的 bbpress 角色,甚至更改其功能。

在最简单的级别上,您可以添加新角色名称并为其赋予现有能力

这仅对您自己的管理目的很有用,但如果像我一样讨厌 「keymaster」 角色名称,只需创建一个新角色并为其赋予 keymaster 功能。

以下代码创建了三个名为 「name 1」 、 「name 2」 和 「name 3」 的新角色,第一个角色有参与者、第二个主持人和第三个关键管理员。

只需修改代码即可创建具有您需要的任何功能的任意数量的角色

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;
}
add_filter( 'bbp_get_dynamic_roles', 'add_custom_role', 1 );

15. 在 bbpress 角色中添加自定义功能

添加自定义功能

16. 论坛页面添加说明

如果您创建一个带有描述的论坛,这只会显示在主索引页面上,而不显示在类别页面或论坛页面上

从:

说明1

到 :

说明2

将以下内容添加到您的函数文件中。

//filter to add description after forums titles on forum index
function rw_singleforum_description() {
  echo '<div class="bbp-forum-content">';
  echo bbp_forum_content();
  echo '</div>';
}
add_action( 'bbp_template_before_single_forum' , 'rw_singleforum_description');

我还添加了这个自定义 CSS 。将此添加到您的子主题的 style.css 文件中,以将其放置在面包屑下。

#bbpress-forums div.bbp-forum-content {
  clear: both !important;
  margin-left: 0 !important;
  padding: 0  !important;
}

17. 将订阅移至右侧

改变
订阅1

到:

订阅2

将以下内容放入您的 style.css

/*styling to move 'Subscribe' to right hand side */
.single-forum .subscription-toggle  {
    float:right !important ;
}

如果您只想将其稍微向右移动,则可以使用此自定义 CSS 。根据您的喜好调整 5px 。

/*styling to move 'Subscribe' to right hand side */
.single-forum .subscription-toggle  {
    padding-left: 5px !important ;
}

18. 防止用户更改他们的显示名称

用户可以在 bbpress 个人资料页面中更改他们的显示名称。一些论坛希望阻止这种情况以阻止用户隐藏他们的身份。

要关闭此功能,您需要编辑默认文件之一并将其保存到您的主题中。

在您的主题中创建一个 bbpress 文件夹。

wp-content/themes/%yourtheme%/bbpress

其中 %yourtheme% 是您的主题名称

然后导航到

wp-content/plugins/bbpress/templates/default/bbpress/form-user-edit.php

并将此文件复制到您在上面创建的 bbpress 文件夹中

bbpress 现在将使用这个而不是默认值。

编辑这个新文件并取出第 33 到 45 行

即取出以下内容

<div>
            <label for="nickname"><?php _e( 'Nickname', 'bbpress' ); ?></label>
            <input type="text" name="nickname" id="nickname" value="<?php bbp_displayed_user_field( 'nickname', 'edit' ); ?>" class="regular-text" tabindex="<?php bbp_tab_index(); ?>" />
        </div>
        <div>
            <label for="display_name"><?php _e( 'Display Name', 'bbpress' ) ?></label>
            <?php bbp_edit_user_display_name(); ?>
        </div>
        <?php do_action( 'bbp_user_edit_after_name' ); ?>

这将删除设置昵称和更改显示名称的功能。

19. 链接到一个随机的单个话题

这是一个非常漂亮的功能,允许用户通过单击链接浏览随机话题。

如果您启用了它,它会挂在主要主题之前,否则它还会创建一个名为 [ntwb-bbpress-random-single-topic] 的简码,允许您将其放入小工具或 WordPress 帖子中。

// bbPress - Random Single Topic
function ntwb_bbpress_random_single_topic() {
    if ( bbp_has_topics( array( 'orderby' => 'rand', 'posts_per_page' => 1 ) ) ) {


        while ( bbp_topics() ) : bbp_the_topic();


            ?>
            <a class="bbp-topic-permalink" href="<?php bbp_topic_permalink(); ?>">Random Topic</a>
            <?php


        endwhile;
    }
}
// Hook into action
add_action('bbp_template_before_lead_topic','ntwb_bbpress_random_single_topic');
// Add it as a shortcode [ntwb-bbpress-random-single-topic]
add_shortcode('ntwb-bbpress-random-single-topic', 'ntwb_bbpress_random_single_topic');

20. 重命名用户角色名称

此功能允许您重命名 bbPress 预定义的用户角色。

只需将 「我的自定义 *** 角色名称」 更改为您喜欢的内容即可。

add_filter( 'bbp_get_dynamic_roles', 'ntwb_bbpress_custom_role_names' );


function ntwb_bbpress_custom_role_names() {
    return array(


        // Keymaster
        bbp_get_keymaster_role() => array(
            'name'         => 'My Custom Keymaster Role Name',
            'capabilities' => bbp_get_caps_for_role( bbp_get_keymaster_role() )
        ),


        // Moderator
        bbp_get_moderator_role() => array(
            'name'         => 'My Custom Moderator Role Name',
            'capabilities' => bbp_get_caps_for_role( bbp_get_moderator_role() )
        ),


        // Participant
        bbp_get_participant_role() => array(
            'name'         => 'My Custom Participant Role Name',
            'capabilities' => bbp_get_caps_for_role( bbp_get_participant_role() )
        ),


        // Spectator
        bbp_get_spectator_role() => array(
            'name'         => 'My Custom Spectator Role Name',
            'capabilities' => bbp_get_caps_for_role( bbp_get_spectator_role() )
        ),


        // Blocked
        bbp_get_blocked_role() => array(
            'name'         => 'My Custom Blocked Role Name',
            'capabilities' => bbp_get_caps_for_role( bbp_get_blocked_role() )
        )
    );
}

21. 在论坛索引后显示 5 个最近的话题

此功能在您的论坛索引后显示最新的 5 个话题。

// Add Recent Topics to BBPress
function recent_bbpress_topics() { { ?>
 <?php
 if ( bbp_has_topics( array( 'author' => 0, 'show_stickies' => false, 'order' => 'DESC', 'post_parent' => 'any', 'posts_per_page' => 5 ) ) )
 bbp_get_template_part( 'bbpress/loop', 'topics' );
 ?>
<?php }}
// Hook into action
add_action('bbp_template_after_forums_index','recent_bbpress_topics');

22. 仅显示 1 个修订日志话题和回复

使用此功能清理您的修订日志。

// Only return one entry for revision log otherwise it gets cluttered
function bbp_trim_revision_log( $r='' ) {
 $arr = array( end( $r ));
 reset( $r );


 return( $arr );
}


add_filter( 'bbp_get_reply_revisions', 'bbp_trim_revision_log', 20, 1 );
add_filter( 'bbp_get_topic_revisions', 'bbp_trim_revision_log', 20, 1 );

23. 显示 bbPress 论坛搜索无处不在

在单个论坛和单个话题上方显示论坛搜索,但不在 bbPress 个人资料上。

//display bbPress search form above sinle topics and forums
function rk_bbp_search_form(){


    if ( bbp_allow_search()) {
        ?>
        <div class="bbp-search-form">


            <?php bbp_get_template_part( 'form', 'search' ); ?>


        </div>
        <?php
    }
}


add_action( 'bbp_template_before_single_forum', 'rk_bbp_search_form' );
add_action( 'bbp_template_before_single_topic', 'rk_bbp_search_form' );

24. 显示 bbPress 主题的状态标签

这些功能中的每一个都将帮助您根据当前主题的状态添加特定的标签或图标。

在每个话题旁边显示粘性标签。

function rk_sticky_topics() {


   if ( bbp_is_topic_sticky() && !bbp_is_topic_closed() )
      echo '<span class="sticky">[Sticky]</span>';
}


add_action( 'bbp_theme_before_topic_title', 'rk_sticky_topics' );

在每个话题旁边显示封闭标签。

function rk_closed_topics() {


   if ( bbp_is_topic_closed() && !bbp_is_topic_sticky() )
      echo '<span class="closed">[Closed]</span>';
}


add_action( 'bbp_theme_before_topic_title', 'rk_closed_topics' );

如果该话题的回复超过 25 条,则显示热标签。
(您可以将 25 更改为任何您想要的)

function rk_hot_topics() {
   $reply_count = bbp_get_topic_reply_count();


   if ( $reply_count > 25 )
      echo '<span class="hot">[Hot]</span>';
}


add_action( 'bbp_theme_before_topic_title', 'rk_hot_topics' );

如果某个话题已关闭且有粘性,则显示 「公告」 标签。

function rk_announcement_topics() {


   if ( bbp_is_topic_sticky() && bbp_is_topic_closed() )
      echo '<span class="announcement">[Announcement]</span>';
}


add_action( 'bbp_theme_before_topic_title', 'rk_announcement_topics' );

创建话题后一小时内显示 「新」 标签。
将偏移量更改为您想要的任何值,但请确保数量以秒为单位。
例如 60*60*1 = 3600 seconds ,这是 1 小时的秒数。

function rk_new_topics() {
$offset = 60*60*1;


   if ( get_post_time() > date('U') - $offset )
      echo '<span class="new">[New]</span>';
}


add_action( 'bbp_theme_before_topic_title', 'rk_new_topics' );

您可以通过在图标字体 HTML 中添加以显示图标来输入图标。

无论您在哪里看到这个

echo '<span class="example">[Example]</span>';

您可以轻松地将其更改为此。
在这里,我使用了 Dashicons 图标字体集中的随机字体。

echo '<span class="example"><span class="dashicons dashicons-admin-post"></span>[Example]</span>';

如果您要使用基本的 HTML 插入图标的方式,您可以使用这个小 CSS 片段来设置它们的样式。

#bbpress-forums li.bbp-topic-title span.dashicons {
  float: left;
  margin-right: 5px;
}

您也可以仅使用 CSS 在话题标题之前或之后插入自定义图标字体。

这是来自该站点的 Dashicons 示例。

此 CSS 代码在置顶帖之前的话题图标之前显示置顶图标。

ul.sticky 和 ​​ul.super-sticky 都是该话题的帖子类,您可以利用和自定义更多帖子类。

#bbpress-forums ul.sticky li.bbp-topic-title a.bbp-topic-permalink:before,
#bbpress-forums ul.super-sticky li.bbp-topic-title a.bbp-topic-permalink:before {
  font: normal 16px/1 'dashicons';
  content: '\f450';
  margin-right: 5px;
  float: left;
  padding-top: 3px;
  color: #bb0;
}

25. 限制用户访问 WordPress 后端

添加此 PHP 代码片段以仅允许只能编辑帖子的用户访问 WordPress 后端。

/**
 * Redirect back to homepage and not allow access to
 * WP backend for Subscribers.
 */
function rkk_redirect_admin(){
    if ( ! current_user_can( 'edit_posts' ) ){
        wp_redirect( site_url() );
        exit;
    }
}
add_action( 'admin_init', 'rkk_redirect_admin' );

您可能还想为参与者禁用 WordPress 工具栏。

/**
 * Disable toolbar on the frontend of your website
 * for subscribers.
 */
function rkk_disable_admin_bar() {
    if( ! current_user_can('edit_posts') )
        add_filter('show_admin_bar', '__return_false');
}
add_action( 'after_setup_theme', 'rkk_disable_admin_bar' );

您也可以安装 WP Admin No Show 来执行此类操作。

26. 创建一个 bbPress 特定的侧边栏

没有插件

注册您的新侧边栏

将此添加到您的子主题 functions.php 文件中

function rkk_widgets_init() {


    register_sidebar( array(
        'name' => __( 'bbPress Sidebar', 'rkk' ),
        'id' => 'bbp-sidebar',
        'description' => __( 'A sidebar that only appears on bbPress pages', 'rkk' ),
        'before_widget' => '<aside id="%1$s" class="widget %2$s">',
        'after_widget' => '</aside>',
        'before_title' => '<h3 class="widget-title">',
        'after_title' => '</h3>',
    ) );
    }


add_action( 'widgets_init', 'rkk_widgets_init' );

现在在您的子主题中编辑您的 sidebar.php 文件,并选择仅在 bbPress 页面上用 bbPress 侧边栏替换的侧边栏。

此示例使用的是直接来自话题 25 的代码。我们使用条件 is_bbPress 在 bbPress 页面上显示我们想要的侧边栏,并使用!is_bbpress 在 bbPress 页面上不显示我们想要替换的侧边栏。

<?php if ( is_active_sidebar( 'sidebar-1' ) && !is_bbpress() ) : ?>


        <div id="widget-area" class="widget-area" role="complementary">
        <?php dynamic_sidebar( 'sidebar-1' ); ?>
        </div><!-- .widget-area -->


<?php elseif ( is_active_sidebar( 'bbp-sidebar' ) && is_bbpress() ) : ?>


    <div id="secondary" class="widget-area" role="complementary">
    <?php dynamic_sidebar( 'bbp-sidebar' ); ?>
    </div><!-- .widget-area -->


<?php endif; ?>

现在转到仪表盘> 外观> 小工具,现在您将看到一个名为 「bbPress Sidebar」 的新侧边栏。

添加 bbPress 小工具后,它应该看起来像这样。

论坛1

带插件

使用以下任何插件都可以获得特定于 bbPress 的侧边栏。如果您认为您发现的内容不够好,我相信还有更多插件可以执行此类功能。

限制小工具

小工具逻辑

bbPress WP 调整

27. 登录后自定义重定向

要更改用户登录后重定向到的页面,有像 Peter's Login Redirect 这样的 WordPress 插件可以处理重定向,或者您可以使用和自定义此 php 代码片段来实现相同的功能。

下面的 PHP 代码片段会将具有 Admin 用户角色的用户重定向到 WordPress 后端,并将其他任何人重定向到您网站的首页。

/**
* WordPress function for redirecting users on login based on user role
*/
function my_login_redirect( $url, $request, $user ){
if( $user && is_object( $user ) && is_a( $user, 'WP_User' ) ) {
if( $user->has_cap( 'administrator' ) ) {
$url = admin_url();
} else {
$url = home_url();
}
}
return $url;
}
add_filter('login_redirect', 'my_login_redirect', 10, 3 );

SimplePress

SimplePress

SimplePress
Codex Home → Getting Started → Importing Data → Import Forums → SimplePress
Simple Press v5.x Importer for bbPress
FAQ & Known Issues
Versions
Latest tested version: v5.5.2 – Build 12017
Forums

Forum 『Categories』 are imported as a 『Forum』 – You must manually configure the forum types for 『category』 forum type after the import and recounts have finished.
『Locked Forums』 will be imported as like a normal open forum, again you can close/lock these via the forums panel in wp-admin and setting the forum attributes status to closed.

Topics & Replies

Sticky topics 『topic status』 are not set during import, manually 『stick』 any topics after import and recounts are complete. (See trac ticket #2126)
Custom BBCodes are not supported eg. [youtube] – You will have to manually change these yourself after importing into bbPress using phpMyAdmin.
Smilies are rendered as images if contained in 『code』 tags eg. :)
You may find extra page breaks
and paragraph

elements in topics and replies and is less than ideal and is from the way the BBCodes are converted during the forum import conversion. You will find these primarily around 『blockquotes』 and 『lists』
If you are using bbPress 『Show Lead Topic』 some of the formatting will be broken, it has been converted correctly and is an issue with the content-single-topic-lead.php template, see trac # (Ticket to follow).
elements seem to be a hit and miss at the moment, they render sometimes and sometimes not depending on the import. (not very helpful I know, still digging around this issue)
are not currently enabled to be embedded inline in bbPress by default with topics and replies, everything was converted correctly and we just need to throw some switches and push some buttons before the next release of bbPress to make it work, watch this space.
Topic Tags are not imported as this is a paid extension of SimplePress
File attachments are left as is in the WordPress media library, any posts with attachments the URL』s will have to be manually updated after import.

Users

If you are going to use the same WordPress install for your import you do not need to import the users as they are already in the WordPress wp_users table. If you are setting up a fresh install of WordPress simple check the 『convert users』 option before you start your import.
Any custom SimplePress Moderators or Groups are not converted, any users you wish to make 『moderators』 or 『keymasters』 you will have to assign these roles manually via the main WordPress Admin User panel (/wp-admin/users.php).
User 『Favourites』, 『Subscribed Topics』 or 『Personal Messages (PM』s) are not supported or imported.

References
Notes
Redirecting from your old forum to your new
https://bbpress.org/forums/topic/v2-simple-press-importer-and-first-thoughts/page/2/#post-124953 by @shrewdies

开始修改主要 bbPress 模板

开始修改主要 bbPress 模板

此页面的目标受众是基本熟悉编辑 WordPress 主题模板的人。

如果您只是选择 bbPress 并且想要对正在呈现的模板进行一些基本更改,例如删除 WordPress 评论代码或任何仅应在博客文章中显示的帖子元,那么请按照本指南进行操作。

在 bbPress 的普通安装中,该插件会从您当前活动的 WordPress 主题中查找以下模板,并将论坛 「注入」 到它找到的第一个模板中。

它将找到具有下面列出的名称的任何页面模板。

  • plugin-bbpress.php
  • bbpress.php
  • forums.php
  • forum.php
  • generic.php
  • page.php
  • single.php
  • singular.php
  • index.php

对于 WordPress 主题,最常见的是将论坛代码注入 page.php 文件。要找到确切的文件,请安装插件 What The File 并转到您网站的 bbPress 论坛部分并检查您的 WordPress 工具栏,看看要修改的确切文件是什么。

然后您可以复制您找到的文件并将其重命名为上面列出的任何文件名,并确保它位于您的主题根目录中。

wp-content/themes/%mytheme%/bbpress.php 其中 %mytheme% 是您当前活动主题的名称。

建议使用子主题,以免在下次更新主题时丢失任何更改。

毕竟,您可以自定义新的 bbpress.php 文件以删除任何不需要的代码/设计您的 bbPress 论坛,bbPress 插件应该选择该模板并使用该自定义模板呈现其所有页面。

示例模板

不要只是将此代码复制并粘贴到空白模板中。所有的主题都不一样。将其用作指南。

请阅读代码中的注释。

<?php
 
/*
*
* The template for displaying all bbPress pages
*
* This is the template that displays all bbPress pages by default.
* Please note that this is the template of all bbPress pages
* and that other 'pages' on your WordPress site will use a
* different template.
*
* @package WordPress
* @subpackage Theme
*/
 
 
/*
Self explanatory its a functions that gets your header template.
*/
 
get_header(); ?>
 
 
<?php
/*
Surrounding Classes for the site
 
These are different every theme and help with structure and layout
 
These could be SPANs or DIVs and with entirely different classes.
*/
?>
 
<div id="primary" class="site-content">
 
<div id="content" role="main">
 
 
<?php
/*
Start the Loop
*/
?>
 
<?php while ( have_posts() ) : the_post(); ?>
 
 
<?php
/*
This is the start of the page and also the insertion of the post classes.
 
Post classes are very handy to style your forums.
*/
?>
 
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
 
 
<?php
/*
This is the title wrapped in a header tag
 
and a class to better style the title for your theme
*/
?>
 
<header class="entry-header">
 
<h1 class="entry-title"><?php the_title(); ?></h1>
 
</header>
 
 
<?php
/*
This is the content wrapped in a div
 
and class to better style the content
*/
?>
 
<div class="entry-content">
<?php the_content(); ?>
</div>
 
<!-- .entry-content -->
 
 
<?php
/*
End of Page
*/
?>
 
</article>
 
<!-- #post -->
<?php endwhile; // end of the loop. ?>
 
</div>
 
<!-- #content -->
 
</div>
 
<!-- #primary -->
 
 
<?php
/*
This is code to display the sidebar and the footer.
 
Remove the sidebar code to get full-width forums.
 
This would also need CSS to make it actually full width.
*/
?>
 
<?php get_sidebar(); ?>
<?php get_footer(); ?>

为 bbPress 论坛呈现自定义模板代码的另一种方法是在 PHP if 语句中使用条件标记,例如 is_bbpress() 。

这是一个例子。

<?php if ( is_bbpress() ) : ?>
 
<div class="abc">
 
This content should show if it is bbPress
 
    </div>
 
<?php else : ?>
 
<div class="xyz">
 
This should show if it is not bbPress
 
    </div>
 
<?php endif; ?>

phpBB

phpBB

phpBB
Codex Home → Getting Started → Importing Data → Import Forums → phpBB
phpBB v3.x Importer for bbPress
FAQ & Known Issues
Forums

Forum visibility such as moderator or admin only forums will be publicly visible after importing and you need to secure these manually.
『Link Forums』 will be imported as a standard forum without any URL redirect link.

Topics & Replies

『Announcement』 and 『Global』 stickies are imported as bbPress 『Super Stickies』, standard forum 『stickies』 are imported as bbPress 『Stickies』.
Custom phpBB BBCodes are not supported eg. [youtube] – You will have to manually change these yourself either before importing in phpBB or after importing into bbPress using phpMyAdmin.
Smilies are rendered as images if contained in 『code』 tags eg. :)
No file attachments are imported.
All 『Ordered Lists』

    will be displayed as numerical lists.
    You may find extra page breaks
    and paragraph

    elements in topics and replies and is less than ideal and is from the way the BBCodes are converted during the forum import conversion. You will find these primarily around 『blockquotes』 and 『lists』
    If you are using bbPress 『Show Lead Topic』 some of the formatting will be broken, it has been converted correctly and is an issue with the content-single-topic-lead.php template, see trac # (Ticket to follow).
    elements seem to be a hit and miss at the moment, they render sometimes and sometimes not depending on the import. (not very helpful I know, still digging around this issue)
    are not currently enabled to be embedded inline in bbPress by default with topics and replies, everything was converted correctly and we just need to throw some switches and push some buttons before the next release of bbPress to make it work, watch this space.

    Users

    phpBB does not support user profile support for 『First Name』 and 『Last Name』 only 『member_name』 and that will be the WordPress Username.
    Existing passwords are converted during the import so users can login to WordPress/bbPress as soon as the import and recounts have finished.
    phpBB Moderators, Groups, Ranks are not imported, any users you wish to make 『moderators』 or 『keymasters』 you will have to assign these roles manually via the main WordPress Admin User panel (/wp-admin/users.php).
    User 『Personal Messages (PM』s) are not supported or imported.
    User 『Avatars』 are also not supported 『out of the box』 by either WordPress or bbPress, if the users email address is registered with a 『Gravatar this will automatically be used by WordPress and bbPress, otherwise this is plugin territory. (See Note #1 below)
    phpBB Signatures, Location, Occupation and Interests custom profile fields are also not supported by WordPress or bbPress 『out of the box』. (See Note #2 below)

    References
    https://www.phpbb.com/community/faq.php?mode=bbcode
    Notes
    Note #1 – phpBB User Avatars
    The phpBB avatar filename used in phpBB user avatars is imported and stored in the wp_usermeta table as 『_bbp_phpbb_old_user_avatar_filename』. phpBB stores user avatars in /phpbbv3/images/avatars/upload/ and with some tom foolery I am quite sure these can be imported into WP』s media library and with the right plugin enabled quite easily.
    Note #2 – phpBB custom user profile fields stored in wp_usermeta.
    The following custom profile fields are imported into wp_usermeta and as you build your community with WordPress and bbPress, maybe BuddyPress also this should help down the road in converting these values to whatever plugins and profile extensions you decide to use.

    ICQ – 『_bbp_phpbb_old_user_icq』
    MSN Messenger – 『_bbp_phpbb_old_user_msnm』
    Occupation – 『_bbp_phpbb_old_user_occ』
    User Insterests – 『_bbp_phpbb_old_user_interest
    Location 『_bbp_phpbb_old_user_location』
    Signature 『_bbp_phpbb_old_user_signature』 (All BBCode is also converted here into HTML)

GSoC2013

GSoC2013

GSoC2013
Codex Home → GSoC2013
Table of contents

Introduction
Timeline
Ideas
Mentors

Introduction
bbPress is a fully-integrated forum plugin for the popular WordPress web software. It provides forum functionality for over a few hundred thousand WordPress sites, and is most popular for powering the WordPress.com and WordPress.org support sections.
Google Summer of Code is a program in which Google sponsors exceptional college students to develop open source code under the guidance of mentoring open source projects. This year, bbPress is hoping to be a mentoring organisation.
If you know you want to propose a GSoC project around bbPress, but aren』t sure what you want to do, check out our Ideas list below. If you have your own idea for a project, include it in your application and describe it thoroughly. You are not limited to ideas from this list.
Timeline

March 18, 19:00 UTC: Mentoring organizations can begin submitting applications to Google.
March 29, 19:00 UTC: Mentoring organization application deadline.
April 1 – 5: Google program administrators review organization applications.
April 8 19:00 UTC: List of accepted mentoring organizations published on the Google Summer of Code 2013 site.
April 9 – 21: Would-be student participants discuss application ideas with mentoring organizations.
April 22, 19:00 UTC: Student application period opens.
May 3, 19:00 UTC: Student application deadline.

Ideas
Quick Edit forums and topics on dashboard
https://bbpress.trac.wordpress.org/ticket/1394
Provide Quick Edit functionality for forums and topics.
Admin Bar Support
https://bbpress.trac.wordpress.org/ticket/1439
Add admin bar UI and improve code for marking a user as Spam.
Akismet admin UI
https://bbpress.trac.wordpress.org/ticket/1616
Finishing up the API for and building the bbPress/Akismet admin UI to display the spam history and Akismet results.
Bulk actions for forums
https://bbpress.trac.wordpress.org/ticket/1723
Provide Bulk Actions for forums, such as marking topics as closed/spam/etc.
Moderator control panels
https://bbpress.trac.wordpress.org/ticket/1721
Create a `/moderate` section for moderators to use without needing to visit the `wp-admin` area.
Direct login and register links to bbpress login or register page templates
https://bbpress.trac.wordpress.org/ticket/1756
Create direct login and register pages, and/or a sidebar Widget, for bbPress users to avoid sending them to `wp-login.php`.
Very long load times when posting replies if topic has many subscribers
https://bbpress.trac.wordpress.org/ticket/2162
Create a mail queue on `wp_cron` to avoid long loads when a new reply is posted to a topic with many subscribers.
Auto refreshing new replies
https://bbpress.trac.wordpress.org/ticket/1907
AJAX all of the things!
User signatures/sigfiles
(No ticket yet.)
Mentors

John James Jacoby, jjj
bbPress Lead Developer. Interested in projects around BuddyPress and bbPress.

Jennifer M. Dodd, jmdodd
bbPress Core Contributor. Interested in improving moderator experience and capabilities and adding popular user-requested functionality.

Daniel Dvorkin, MZAWeb
bbPress Contributor. Interested mostly in performance, AJAXifing all the things and security, but always open to fun challenges.

vBulletin

vBulletin

vBulletin
Codex Home → Getting Started → Importing Data → Import Forums → vBulletin
vBulletin v4.x Importer for bbPress
FAQ & Known Issues
Known Issues: Users must reset their password manually using /wp-login.php?action=lostpassword See #1969 for detailed password information.
Forums

Forum visibility such as moderator or admin only forums will be publicly visible after importing and you need to secure these manually.
『Link Forums』 will be imported as a standard forum without any URL redirect link.
『Locked Forums』 will be imported as like a normal open forum, again you can close/lock these via the forums panel in wp-admin and setting the forum attributes status to closed.

Topics & Replies

No file attachments are imported.

Users

vBulletin does not support user profile support for 『First Name』 and 『Last Name』 only 『username』 and that will be the WordPress Username.
vBulletin Moderators, Groups, Ranks are not imported, any users you wish to make 『moderators』 or 『keymasters』 you will have to assign these roles manually via the main WordPress Admin User panel (/wp-admin/users.php).
User 『Personal Messages (PM』s) are not supported or imported.
User 『Avatars』 are also not supported 『out of the box』 by either WordPress or bbPress, if the users email address is registered with a 『Gravatar this will automatically be used by WordPress and bbPress, otherwise this is plugin territory.
vBulletin MSN, Skype custom profile fields are also not supported by WordPress or bbPress 『out of the box』. (See Note #1 below)

References
http://www.vbulletin.com/forum/misc.php?do=bbcode
http://stackoverflow.com/questions/13920322/vbulletin-to-bbpress-conversion-how-can-i-redirect-the-old-urls-to-the-new-one
Notes
Note #1 – vBulletin custom user profile fields stored in wp_usermeta.
The following custom profile fields are imported into wp_usermeta and as you build your community with WordPress and bbPress, maybe BuddyPress also this should help down the road in converting these values to whatever plugins and profile extensions you decide to use.

ICQ – 『_bbp_vbulletin_user_icq』
MSN Messenger – 『_bbp_vbulletin_user_msnm』
Skype』_bbp_vbulletin_user_skype』