如何将bbPress论坛无缝集成到任何WordPress主题中
文章目录
原文地址,原作者:David Morgan 本文要求你对WordPress和HTML和CSS有基本的了解。
在本文中,我将帮助您将bbPress论坛插件无缝地集成到几乎任何WordPress主题中。另外,如果你不习惯或者害怕写代码的话,我们还提供了一个简单的方法来集成bbPress论坛到你的网站里。
开始
首先,你需要在你的WordPress的后台中安装bbPress插件。点击左侧菜单中的“插件→安装插件”,在“搜索插件”框中输入“bbPress”。然后点击“现在安装”,并激活插件。
至于如何使用这个插件,不是本文所涉及的范围(但我会告诉你一点点基础操作)。
如果您需要学习如何创建和管理论坛,建议您参阅bbPress的文档。
测试内容
出于测试目的,你需要在论坛里发几篇测试用的帖子。
理想的测试内容包括:
- 一个论坛版块;
- 两篇帖子:一篇是置顶帖子,另一篇是普通的帖子,都要有至少两个回帖。
在WordPress后台中,点击“论坛>新建版块(可能也叫Add New)”,输入版块的标题(真的随便啦),然后点击“发布”按钮。
接下来,进入“论坛”页面(位置在稍后有说到)并找到你新建的论坛。
现在,滚动到页面底部,找到发布帖子用的框(标题可能叫“在 (你刚才创建的版块) 中创建新帖子”),随便输入标题和内容并发布。回复帖子也是一样的操作。
找到论坛
默认情况下,bbPress会添加一个“论坛”页面。但是,这个页面在WordPress页面列表中是不可见的。
您可以通过在您的网站域名后面加上forums来访问它。例如:https://yourwebsite.com/forums/。
现在,你的论坛可能不太好看(取决于你的主题)。这是因为论坛使用默认的页面模板(默认的页面模板和样式纯粹是为了“能正常显示论坛内容”而生的),除非您的主题已经为bbPress进行了优化。
如果你的主题已经有了针对性优化(和主题的其他部分的设计风格一样),那么您可能不需要继续阅读本教程了。
否则,请继续阅读。
论坛页面模板
有时,你的主题提供的页面模板并不适合论坛。不过,创建论坛页面模板非常容易。
对于这一部分,我希望你对WordPress和HTML有基本的了解。此外,我们强烈建议在子主题中进行这些更改。因为在父主题中做出的修改会在更新主题之后消除,而你不会希望这样的事发生。
好的,我们假设您现在已经创建并激活了子主题。在这个子主题文件夹中,应该有至少两个文件,一个functions.php文件和一个style.css文件。稍后我就会讲到这些。
创建论坛模板
现在,我们将为子主题创建一个forum.php文件。遵循以下步骤:
- 从您的父主题复制
page.php文件。 - 将该文件粘贴到您的子主题文件夹中。
- 将文件重命名为
forum.php。 - 使用代码编辑器(如Notepad++,不要使用记事本!)打开该文件。
在forum.php文件中,您将看到主题用于显示页面的代码。它应该相对简单,并且希望主题的作者会写良好的注释。
<?php
/**
* This template displays the default page content.
*
* @package Organic Origin
* @since Organic Origin 1.0
*/
get_header(); ?>
<!-- BEGIN .post class -->
<div <?php post_class(); ?> id="page-<?php the_ID(); ?>">
<?php get_template_part( 'content/banner', 'image' ); ?>
<!-- BEGIN .row -->
<div class="row">
<!-- BEGIN .content //页面正文开始 -->
<div class="content">
<?php if ( is_active_sidebar( 'sidebar-1' ) ) { ?>
<!-- BEGIN .eleven columns -->
<section class="eleven columns">
<?php get_template_part( 'content/loop', 'page' ); ?>
<!-- END .eleven columns -->
</section>
<!-- BEGIN .five columns //侧边栏区域开始 -->
<section class="five columns">
<?php get_sidebar(); ?> //显示侧边栏
<!-- END .five columns //侧边栏区域结束 -->
</section>
<?php } else { ?>
<!-- BEGIN .sixteen columns -->
<section class="sixteen columns">
<?php get_template_part( 'content/loop', 'page' ); ?>
<!-- END .sixteen columns -->
</section>
<?php } ?>
<!-- END .content -->
</div>
<!-- END .row -->
</div>
<!-- END .post class -->
</div>
<?php get_footer(); ?>
在上述示例代码中,有用于显示边栏的代码。因此,如果你想在WordPress管理中添加小部件到你的侧边栏,这些小部件将会显示在你的页面上。
因此,如果没有侧边栏,则页面内容将以全宽度显示。很简单。
去掉侧边栏
但是,您可能不希望在论坛页面上显示 和其他页面一样的小工具。相反,您能可能想为论坛设置一个单独的侧边栏。于是您就可以在论坛中显示登录框,最新帖子和回复等其他有用的bbPress小部件。
这将我们带入下一步——创建论坛专用侧边栏。
为论坛创建专属侧边栏
还记得您的子主题的那两个文件吗? 好,让我们回到functions.php文件。
注册侧边栏
在functions.php文件中添加以下代码以注册新的侧边栏:
//如果函数还未声明,则继续
if ( ! function_exists( 'my_theme_widgets_init' ) ) :
//开始注册侧边栏
function my_theme_widgets_init() {
if ( class_exists( 'bbPress' ) ) {
register_sidebar(
array(
'name' => esc_html__( 'Forums Sidebar', 'my-theme' ),
'id' => 'sidebar-forum',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
)
);
}
}
endif;
add_action( 'widgets_init', 'my_theme_widgets_init' );
现在,当你回到WordPress后台>外观>小工具时,您应该就能看到右侧有一个专门的“论坛侧边栏”。你可以往这个侧边栏里添加论坛小工具。
但是,要在论坛页面中显示它们需要额外的步骤。
将论坛侧边栏添加到论坛模板
回到forum.php文件。到目前为止,它仍然包含与父主题的page.php文件相同的代码。我们需要编辑这段代码来显示你的论坛侧边栏。
首先,让我们添加侧边栏代码。
我们将第35行的get_sidebar();替换为以下代码:
<!-- BEGIN .sidebar --> <section class="sidebar"> <?php dynamic_sidebar( 'sidebar-forum' ); ?> <!-- END .sidebar --> </section>
接下来,在第22行将以下代码:
<?php if ( is_active_sidebar( 'sidebar-1' ) ) { ?>
替换为:
<?php if ( is_active_sidebar( 'sidebar-forum' ) ) { ?>
太好了!您的forum.php文件现在应如下所示:
<?php
/**
* This template is used to display bbPress forums.
*
* @package Organic Origin
* @since Organic Origin 1.0
*/
get_header(); ?>
<!-- BEGIN .post class -->
<div <?php post_class(); ?> id="post-<?php the_ID(); ?>">
<!-- BEGIN .row -->
<div class="row">
<!-- BEGIN .content -->
<div class="content">
<?php if ( is_active_sidebar( 'sidebar-forum' ) ) { ?>
<!-- BEGIN .twelve columns -->
<section class="twelve columns">
<?php get_template_part( 'content/loop', 'page' ); ?>
<!-- END .twelve columns -->
</section>
<!-- BEGIN .four columns -->
<section class="four columns">
<!-- BEGIN .sidebar -->
<section class="sidebar">
<?php dynamic_sidebar( 'sidebar-forum' ); ?>
<!-- END .sidebar -->
</section>
<!-- END .four columns -->
</section>
<?php } else { ?>
<!-- BEGIN .sixteen columns -->
<section class="sixteen columns">
<?php get_template_part( 'content/loop', 'page' ); ?>
<!-- END .sixteen columns -->
</section>
<?php } ?>
<!-- END .content -->
</div>
<!-- END .row -->
</div>
<!-- END .post class -->
</div>
<?php get_footer(); ?>
注意,上述示例代码使用的是“Organic”主题中的代码。如果您使用的主题不同,则代码结构会大不相同。因此,如果在修改代码时遇到困难,则可能需要联系主题的作者。
让论坛更好看
现在,您的网站拥有了带有侧边栏的论坛页面,看起来还不是很理想。不过,我们可以让它的外观更上一层楼! 虽然bbPress包括默认样式,然而这些样式往往与任何主题的设计风格相冲突。因此,我们将使用“bbPress China theme”来做基本的美化。
虽然这个“主题”可能不适用于所有的主题,但它提供了一个良好的起点。
在您的子主题的style.css文件中,添加这个页面中写的样式。
添加好样式后,回到论坛页面,看看论坛的版块、主题(帖子)、和用户页面。希望能和主题的设计风格相吻合,如果没有,根据主题需要调整样式。
就是这样!成功完成上述步骤后,bbPress应该能无缝集成到您的网站里。
简单的方法——使用论坛短代码(Shortcode)
对于某些用户而言,创建子主题、注册侧边栏和编辑模板文件等步骤可能会非常困难。
不过,还有另一种方法。bbPress提供了许多有用的短代码,用于将论坛内容添加到任何页面中。
将论坛添加到页面中
请遵循以下步骤:
- 进入WordPress后台,点击“页面>新建页面”。
- 输入页面的标题,例如“讨论区”之类的。
- 如果你使用的是“古腾堡”编辑器:点击“加号”按钮,选择“小工具”中的“短代码”。然后在“在此编写短代码”中输入
[bbp-forum-index]。 - 如果你使用的是经典编辑器(推荐):直接在页面内容中输入
[bbp-forum-index]即可。 - 发布页面。
现在,论坛将出现在新页面上。此外,您可以尝试使用其他bbPress短代码来添加搜索表单,登录表单,统计信息等等!所有的短代码可以在这里找到。
添加论坛样式
先前提到的样式仍然有用。这次,您不需要创建子主题。
进入“外观>自定义>额外CSS”,可以直接添加样式。
在“额外CSS”中,粘贴前面提供的样式。然后按“发布”按钮。选择,你的论坛现在看起来更有条理。
论坛专用小工具
如果您不想麻烦地注册新的侧边栏,那么,还有另一种显示论坛小工具的解决方案。
Jetpack插件提供了“小工具可见性”功能。
可以在Jetpack的设置中打开该选项。
因此,您可以将bbPress的小工具添加到主题的默认侧边栏中。
然后,选择仅在论坛页面上显示它们。
搞定!
现在,你的WordPress网站上拥有了一个无缝集成的bbPress论坛。
准备好之后,删除之前的测试内容。然后,开始建立你的社区吧!