BuddyPress 初学者指南:提示和资源
WordPress 很可能是使用最广泛的开源 CMS,拥有数以千计的免费主题和插件。该软件的粉丝很可能听说过臭名昭著的 WordPress 网站BuddyPress 插件。您可以扩展功能以包括用户配置文件页面、私人消息甚至用户论坛。
BuddyPress 本身几乎是一个庞大的社交网络库,它恰好运行在 WordPress 核心之外。在本文中,我们可以一窥对新加入的 BuddyPress 用户有用的十个技巧。
我将重点介绍一些基本的安装技术,同时还包括对更详细的代码片段的引用。对于希望在 BuddyPress 中玩耍并了解其功能的新用户来说,这是一份极好的指南。
在直接进入列表之前,我将简要概述一下BuddyPress中的一些功能。许多初次使用 BuddyPress 和 bbPress 论坛的用户感到困惑。请允许我快速澄清这些想法。
推荐阅读: 40 多个免费的响应式 WordPress 主题
BuddyPress 和 bbPress 的区别
BuddyPress 是 2008 年为 WordPress 发布的这两个插件中的第一个。该插件一直是开源的,并且在用户贡献的基础上蓬勃发展。您可以在 BuddyPress 的“关于”页面上了解有关其核心功能的更多信息。
大多数人没有意识到的是,BuddyPress 实际上是与 bbPress 打包在一起的。这意味着如果您将 BuddyPress 安装到您的网站,这将包括与独立 bbPress 插件相同的所有功能。开发团队由很多相同的人组成,这两个插件都已经开发了几年。
(图片来源:ernohannink)
在本指南中,我将主要关注 BuddyPress 的功能,但我也为 bbPress 用户提供了一些很棒的提示。如果这样更容易,您可以将这些功能视为一个单独的包。
BuddyPress 不需要运行 bbPress 论坛,因为它们是可选设置。如果您想比较其他差异,请查看此论坛主题。
1. 安装和配置 BuddyPress
对于从未经历过使用 BuddyPress 的核心过程的 WordPress 用户,那么本文适合您。WPTuts+ 的 Adam Murray 写了一个优秀的系列,重点介绍为新用户安装和定制BuddyPress。
本演练教程是学习该系统的最佳方式,无需您自己独自深入。您可以了解 BuddyPress 的主要功能以及 WordPress 管理面板中的许多不同选项。
有大量资源和 BP 功能可供研究,包括私人消息、活动流、用户博客、扩展配置文件等等。
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 为初学者提供了更详细的信息。
如果您刚刚起步,您可以从这篇由 3 部分组成的社论中学到的技巧是惊人的。如果您已经熟悉开发 WordPress 主题,那么大部分代码看起来都很熟悉。
您应该调用类似的函数,例如the_content()
和the_category()
。但是 BuddyPress 显然有自己的一套功能和方法来与用户配置文件进行交互。
内容被分解成循环,这些循环通常是从数据库中检索内容的 PHP/SQL 查询。您可能会将这些循环视为 BuddyPress 中的一些不同页面。
这些页面循环可能引用用户配置文件、组列表、成员列表、论坛主题、私人消息或任何类似内容。这些概念都与 WordPress 相关,因此如果您已经了解该知识领域,那么 BuddyPress 的主题应该不会太具有挑战性。
推荐阅读: 指南:WordPress 子主题开发
4. 自定义 bbPress 主题的分步指南
与 BuddyPress 主题类似,您也可以构建自己的自定义 bbPress 主题。我在他们的文档中找到了这个关于 bbPress 主题的在线指南,它提供了一个很好的参考点。
当前指南是为 bbPress 2.0.2 主题编写的,截至本文为止的最新版本是 bbPress 2.2。然而,这些主题仍然适用,您可以非常快速地学习所有基本概念。bbPress 的主题比 BuddyPress 简单得多,因为您只关注论坛区域(可能还有用户配置文件)。
文档中提到的另一个选项是创建一个 bbPress子主题。这将运行一个已经存在的主题,并且只使用您在模板中的特定自定义。通常这种方法要容易得多,因此您不必从头开始编写整个主题布局。
推荐阅读: 美丽的 WordPress 驱动网站展示
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_user
ID 变量列表。这个小 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 支持论坛上发布问题,与开发人员和其他知识渊博的团队成员聊天。