跳至正文

BuddyPress 初学者指南:提示和资源

BuddyPress 初学者指南:提示和资源

WordPress 很可能是使用最广泛的开源 CMS,拥有数以千计的免费主题和插件。该软件的粉丝很可能听说过臭名昭著的 WordPress 网站BuddyPress 插件您可以扩展功能以包括用户配置文件页面、私人消息甚至用户论坛。

BuddyPress 本身几乎是一个庞大的社交网络库,它恰好运行在 WordPress 核心之外。在本文中,我们可以一窥对新加入的 BuddyPress 用户有用的十个技巧。

我将重点介绍一些基本的安装技术,同时还包括对更详细的代码片段的引用。对于希望在 BuddyPress 中玩耍并了解其功能的新用户来说,这是一份极好的指南。

在直接进入列表之前,我将简要概述一下BuddyPress中的一些功能。许多初次使用 BuddyPress 和 bbPress 论坛的用户感到困惑。请允许我快速澄清这些想法。

BuddyPress 和 bbPress 的区别

BuddyPress 是 2008 年为 WordPress 发布的这两个插件中的第一个。该插件一直是开源的,并且在用户贡献的基础上蓬勃发展。您可以在 BuddyPress 的“关于”页面上了解有关其核心功能的更多信息。

大多数人没有意识到的是,BuddyPress 实际上是与 bbPress 打包在一起的。这意味着如果您将 BuddyPress 安装到您的网站,这将包括与独立 bbPress 插件相同的所有功能开发团队由很多相同的人组成,这两个插件都已经开发了几年。

WordCamp WordPress 开源开发者大会 BuddyPress 演讲者(图片来源:ernohannink

在本指南中,我将主要关注 BuddyPress 的功能,但我也为 bbPress 用户提供了一些很棒的提示。如果这样更容易,您可以将这些功能视为一个单独的包。

BuddyPress 不需要运行 bbPress 论坛,因为它们是可选设置。如果您想比较其他差异,请查看此论坛主题

1. 安装和配置 BuddyPress

对于从未经历过使用 BuddyPress 的核心过程的 WordPress 用户,那么本文适合您。WPTuts+ 的 Adam Murray 写了一个优秀的系列,重点介绍为新用户安装和定制BuddyPress。

本演练教程是学习该系统的最佳方式,无需您自己独自深入。您可以了解 BuddyPress 的主要功能以及 WordPress 管理面板中的许多不同选项。

有大量资源和 BP 功能可供研究,包括私人消息、活动流、用户博客、扩展配置文件等等。

BuddyPress 网站布局大约 2009 2010

Adam 还讨论了一些更深入的自定义设置,例如设置组和自定义主题。BuddyPress 有自己的核心文件,可以使用备用插件和主题!绝对是对初学者有用的知识。

2. 了解 bp-custom.php

WordPress 开发人员大多熟悉自定义主题文件functions.php这允许您复制和粘贴更改 WordPress 核心设置的 PHP 代码,而无需实际更改核心文件。该系统已在 BuddyPress 中采用,使用名为bp-custom.php的文件。

联机文档通过一些示例很好地解释了该文件。基本上你在你的插件目录中创建这个文件 /wp-content/plugins/并简单地添加你所有的代码。无论您当前的 WordPress 和 BuddyPress 主题如何,这些都会执行。

您编写的功能代码与核心文件中的其他功能相关联。您可以像在 WordPress 中一样使用过滤器操作来访问这些挂钩。

在 BuddyPress 内部构建足够的时间后,您将开始记住变量名称和方法调用。这是在没有太多经验的情况下自定义论坛的绝妙技巧。

3. 开发 BuddyPress 主题

这一系列的模板文章分为三个不同的部分,都是由 Adam Murray 撰写的,他编写了我们之前的介绍教程。虽然可能还有其他关于 BuddyPress 主题的指南,但我觉得 Adam 为初学者提供了更详细的信息。

在线 BuddyPress bbPress codex 文档 php 代码

如果您刚刚起步,您可以从这篇由 3 部分组成的社论中学到的技巧是惊人的。如果您已经熟悉开发 WordPress 主题,那么大部分代码看起来都很熟悉。

您应该调用类似的函数,例如the_content()the_category()但是 BuddyPress 显然有自己的一套功能和方法来与用户配置文件进行交互。

内容被分解成循环,这些循环通常是从数据库中检索内容的 PHP/SQL 查询。您可能会将这些循环视为 BuddyPress 中的一些不同页面。

这些页面循环可能引用用户配置文件、组列表、成员列表、论坛主题、私人消息或任何类似内容。这些概念都与 WordPress 相关,因此如果您已经了解该知识领域,那么 BuddyPress 的主题应该不会太具有挑战性。

4. 自定义 bbPress 主题的分步指南

与 BuddyPress 主题类似,您也可以构建自己的自定义 bbPress 主题。我在他们的文档中找到了这个关于 bbPress 主题的在线指南,它提供了一个很好的参考点。

bbPress org网站开源WordPress插件论坛软件

当前指南是为 bbPress 2.0.2 主题编写的,截至本文为止的最新版本是 bbPress 2.2。然而,这些主题仍然适用,您可以非常快速地学习所有基本概念。bbPress 的主题比 BuddyPress 简单得多,因为您只关注论坛区域(可能还有用户配置文件)。

文档中提到的另一个选项是创建一个 bbPress子主题这将运行一个已经存在的主题,并且只使用您在模板中的特定自定义。通常这种方法要容易得多,因此您不必从头开始编写整个主题布局。

5. 更新 BuddyPress 用户资料链接

首次安装 BuddyPress 时,您会注意到典型的用户配置文件链接实际上转到了 WordPress 仪表板。您可以在插件的设置页面中对此进行自定义,您会在其中看到“登录链接”。

需要编辑第二个锚标记以匹配您的自定义成员 URL。默认情况下,BuddyPress 遵循http://yoursite.com/members/username/您可以更新的架构。但是为了将其正确显示为链接,您需要将第二个锚点更改为如下所示:

<a href="http://yoursite.com/members/%USERNAME%/">个人资料</a>

资源

6. 从成员目录列表中排除用户

有时您可能希望从您的 BuddyPress 公开列表中隐藏某些成员。这可能包括朋友页面或什至搜索成员。一些想法可能是隐藏管理员帐户、版主或您为测试新功能而创建的假帐户。

我已经复制了一个代码片段,您可以将其放在 bp-custom.php 文件中。您需要编辑的只是$excluded_userID 变量列表。这个小 hack 来自Brajesh Singh的博客 BuddyDev。

add_action('bp_ajax_querystring','bpdev_exclude_users',20,2);
函数 bpdev_exclude_users($qs=false,$object=false){
 //要排除的用户列表
 
 $excluded_user='1,2,3';//要排除的用户的逗号分隔ID
 
 if($object!='members')//仅对成员隐藏
 返回$qs;
 
 $args=wp_parse_args($qs);
 
 //检查我们是在搜索还是在列出朋友?,在这种情况下不要排除
 如果(!empty($args['user_id'])||!empty($args['search_terms']))
 返回$qs;
 
 如果(!空($args['排除']))
 $args['exclude']=$args['exclude'].','.$excluded_user;
 别的
 $args['exclude']=$excluded_user;
 
 $qs=build_query($args);
 
 返回$qs;
}

资源

7.注册页面的自定义会员重定向

当您的用户登录并尝试访问注册页面时,BuddyPress 会将他们发送到成员列表。这种效果是由核心注册文件中的一小段代码引起的。然而,我们可以使用过滤器将用户重定向到自定义页面,而不是破解核心。

将以下代码复制到您自己的 WordPress 中的 bp-custom.php 或 functions.php 中。通常最好将 bbPress/BuddyPress 代码与 WordPress 代码分开。但是这里的所有 PHP 都相当简单,您需要自定义的只是$redirect_to变量。

函数 bbg_bp_loggedin_register_page_redirect_to( $redirect_to ) {
    如果(bp_is_component_front_page('注册'))
        $redirect_to = bp_get_root_domain() 。'/家';

    返回 $redirect_to;
}
add_filter( 'bp_loggedin_register_page_redirect_to', 'bbg_bp_loggedin_register_page_redirect_to' );

资源

8. 重新排序 BuddyPress 默认配置文件链接

BuddyPress 将为模板中的每个链接设置导航菜单位置。这些链接包括“用户资料”、“活动”、“朋友”、“消息”和其他 BuddyPress 功能。通过创建绑定到您自己的自定义操作,bp_setup_nav您可以编辑这些位置值以重新排列导航链接。

在这个 StackExchange 线程中找到了一个很好的解决方案,它概述了如何设置位置数组值。我已经复制了下面的基本代码;随意自定义和编辑这些值以满足您自己的需要。这将从您的 BuddyPress bp-custom.php 文件和您的 WordPress 主题的 functions.php 完美运行。

函数 bbg_change_profile_tab_order() {
全球$英国石油公司;

    $bp->bp_nav['profile']['position'] = 10;
    $bp->bp_nav['活动']['位置'] = 20;
    $bp->bp_nav['博客']['位置'] = 30;
    $bp->bp_nav['朋友']['位置'] = 40;
    $bp->bp_nav['消息']['位置'] = 50;
    $bp->bp_nav['组']['位置'] = 60;
    $bp->bp_nav['设置']['位置'] = 70;
}
add_action('bp_setup_nav', 'bbg_change_profile_tab_order', 999 );

资源

9.显示用户总帖子和主题开始

bbPress 论坛从一开始就非常通用。这并不意味着您不能自定义自己的样式,但这意味着您将进行大量研究和繁重的编码工作。

此代码片段将显示每个用户的论坛帖子总数和启动的论坛线程数。这是您在整个 Web 论坛上找到的典型指标,因此在 BuddyPress 用户配置文件中也期望这些数字是司空见惯的。

我在2009 年的一篇博文中发现了这一小段代码代码非常简单,根据当前配置文件 ID 从数据库中提取两个唯一的 SQL 查询。只需找到bb_profile_data();您的模板并将其替换为:

<?php bb_profile_data(); ?>
<div id="用户统计">
<?php
	全局 $bb_table_prefix;
	$query1 = "SELECT COUNT(*) FROM ".$bb_table_prefix."posts WHERE poster_id = $user_id AND post_status = 0";
	$query2 = "SELECT COUNT(*) FROM ".$bb_table_prefix."posts WHERE poster_id = $user_id AND post_status = 0 AND post_position = 1";
	echo "论坛帖子:<b>".$bbdb->get_var($query1)."</b> ";
	echo " 主题开始: <b>".$bbdb->get_var($query2)."</b>";
?>
</div>

资源

10. 覆盖默认的 BuddyPress 头像

自定义用户头像是大多数开发人员期望在任何 CMS 中使用的常规功能。WordPress 允许作者和用户使用此功能,但它不能很好地转移到 BuddyPress 中。您也可能希望基于 WordPress 和 BuddyPress 设置两个不同的头像。

使用这段代码,您可以覆盖 BuddyPress 用户的默认头像照片,并将其替换为新的 URL。请注意,这只会显示在尚未自定义头像的会员身上。只需将以下代码添加到您的bp-custom.php文件中,并确保更新该my_default_avatar_url()函数,以便它为您的新默认图像返回正确的 URL。

/**
 * 在整个 BP 禁用 Gravatar
 */
add_filter( 'bp_core_fetch_avatar_no_grav', '__return_true' );

/**
 * 提供全局用户头像默认
 */
函数 my_default_avatar_url() {
    返回 '​​http://mysite.com/images/static/avatar.jpg';
}
add_filter( 'bp_core_default_avatar_user', 'my_default_avatar_url' );

资源

其他有用的材料

最后的想法

我希望本指南可以为新的 BuddyPress 和 bbPress 用户提供信息。管理您自己的博客可能是一项艰巨的工作,更不用说整个用户群和社区了。熟悉 BuddyPress 可能需要数小时的练习和编码才能使您的安装正常运行。如果您迷路了,可以在BuddyPress 支持论坛上发布问题,与开发人员和其他知识渊博的团队成员聊天。

标签:

发表回复