如何将bbPress论坛无缝集成到任何WordPress主题中

文章目录
  1. 开始
  2. 测试内容
  3. 找到论坛
  4. 论坛页面模板
    1. 创建论坛模板
    2. 去掉侧边栏
    3. 为论坛创建专属侧边栏
      1. 注册侧边栏
      2. 将论坛侧边栏添加到论坛模板
  5. 让论坛更好看
  6. 简单的方法——使用论坛短代码(Shortcode)
    1. 将论坛添加到页面中
    2. 添加论坛样式
    3. 论坛专用小工具
  7. 搞定!
原文地址,原作者: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文件。遵循以下步骤:

  1. 从您的父主题复制page.php文件。
  2. 将该文件粘贴到您的子主题文件夹中。
  3. 将文件重命名为forum.php
  4. 使用代码编辑器(如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提供了许多有用的短代码,用于将论坛内容添加到任何页面中。

将论坛添加到页面中

请遵循以下步骤:

  1. 进入WordPress后台,点击“页面>新建页面”。
  2. 输入页面的标题,例如“讨论区”之类的。
  3. 如果你使用的是“古腾堡”编辑器:点击“加号”按钮,选择“小工具”中的“短代码”。然后在“在此编写短代码”中输入[bbp-forum-index]
  4. 如果你使用的是经典编辑器(推荐):直接在页面内容中输入[bbp-forum-index]即可。
  5. 发布页面。

现在,论坛将出现在新页面上。此外,您可以尝试使用其他bbPress短代码来添加搜索表单,登录表单,统计信息等等!所有的短代码可以在这里找到

添加论坛样式

先前提到的样式仍然有用。这次,您不需要创建子主题。

进入“外观>自定义>额外CSS”,可以直接添加样式。

在“额外CSS”中,粘贴前面提供的样式。然后按“发布”按钮。选择,你的论坛现在看起来更有条理。

论坛专用小工具

如果您不想麻烦地注册新的侧边栏,那么,还有另一种显示论坛小工具的解决方案。

Jetpack插件提供了“小工具可见性”功能。

可以在Jetpack的设置中打开该选项。

因此,您可以将bbPress的小工具添加到主题的默认侧边栏中。

然后,选择仅在论坛页面上显示它们。

搞定!

现在,你的WordPress网站上拥有了一个无缝集成的bbPress论坛。

准备好之后,删除之前的测试内容。然后,开始建立你的社区吧!