buddypress主题_BuddyPress入门指南:提示和资源
WordPress可能是使用最广泛的开源CMS,其中包含数千个免费主题和插件。 该软件的粉丝最有可能听说过臭名昭著的WordPress网站BuddyPress插件 。 您可以扩展功能,以包括用户个人资料页面,私人消息传递甚至用户讨论论坛。
BuddyPress本身几乎是一个庞大的社交网络库,恰好在WordPress核心之外运行。 在本文中,我们可以窥见新加入的BuddyPress用户的十个有用技巧。
我将重点介绍一些基本的安装技术,同时还包括对更详细的代码段的引用。 对于希望在BuddyPress中玩转并了解其功能的新用户来说,这是一个很好的指南。
在跳入列表之前,我将提供简要概述, 解释 BuddyPress中的某些功能 。 许多初次使用BuddyPress和bbPress论坛的用户会感到困惑。 请允许我Swift澄清这些想法。
BuddyPress和bbPress之间的区别
BuddyPress是这两个在2008年针对WordPress发布的工具中的第一个。该插件一直是开源的,它在用户的贡献上蒸蒸日上。 您可以在“关于”页面上了解有关BuddyPress核心功能的更多信息。
大多数人没有意识到的是BuddyPress实际上是与bbPress打包在一起的。 这意味着,如果您将BuddyPress安装到您的网站中,它将包括与独立bbPress插件相同的所有功能。 开发团队由许多相同的人组成,并且这两个插件都已经开发了几年。
![](/assets/blank.gif)
![](/assets/blank.gif)
(图片来源: ernohannink )
在本指南中,我将主要侧重于BuddyPress功能,但我也为bbPress用户提供了一些很棒的技巧。 如果可以简化这些功能,则可以将它们视为一个软件包。
BuddyPress不需要bbPress论坛即可运行,因为它们是可选设置。 如果您想比较其他差异,请查看此论坛主题 。
1.安装和配置BuddyPress
对于从未经历过使用BuddyPress核心过程的WordPress用户,那么本文适合您。 WPTuts +的Adam Murray撰写了精彩的系列文章,重点介绍了为新用户安装和自定义 BuddyPress。
本演练教程是学习系统的最佳方法,而无需您自己独自潜入。 您可以了解BuddyPress的主要功能以及WordPress管理面板中的许多各种选项。
有大量的资源和BP功能需要研究,包括私人消息传递,活动流,用户博客,扩展的个人资料等等。
![](https://assets.hongkiat.com/uploads/buddypress-tips-resources/old-buddypress-website-layout-2009.jpg)
![](https://assets.hongkiat.com/uploads/buddypress-tips-resources/old-buddypress-website-layout-2009.jpg)
Adam还讨论了一些更深入的自定义设置,例如设置组和自定义主题。 BuddyPress有自己的核心文件,可以利用其他插件和主题! 绝对是一些对初学者有用的知识。
2.了解bp-custom.php
WordPress开发人员最熟悉自定义主题文件functions.php 。 这样,您就可以复制和粘贴PHP代码,从而更改WordPress核心中的设置,而无需实际更改核心文件。 BuddyPress使用名为bp-custom.php的文件采用了该系统。
联机文档通过一些示例很好地解释了该文件。 基本上,您可以在插件目录 /wp-content/plugins/
创建此文件,然后只需添加所有代码即可。 无论您当前的WordPress和BuddyPress主题如何,这些命令都会执行。
您编写的功能代码与放置在核心文件中的其他功能绑定在一起。 您可以通过使用过滤器和操作来访问这些挂钩,就像在WordPress内部一样。
在BuddyPress中建立足够的时间后,您将开始记住变量名称和方法调用。 这是在没有太多经验的情况下自定义论坛的绝妙技巧。
3.开发BuddyPress主题
这一系列的模板文章分为三个不同的部分,全部由亚当·默里(Adam Murray)撰写,他写了我们较早的入门教程。 尽管关于BuddyPress的主题可能还有其他指南,但我还是觉得Adam对于初学者来说会更详细。
![](/assets/blank.gif)
![](/assets/blank.gif)
如果您只是入门,那么可以从这三部分的社论中学到的技巧非常了不起。 如果您已经熟悉开发WordPress主题,那么大多数代码将看起来很熟悉。
您应该调用类似的函数,例如the_content()
和the_category()
。 但是BuddyPress显然具有其自己的一组与用户个人资料进行交互的功能和方法。
内容分为多个循环,通常是PHP / SQL查询从数据库检索内容。 您可能将这些循环视为BuddyPress内部的某些不同页面。
这些页面循环可以引用用户配置文件,组列表,成员列表,论坛主题,私人消息或类似内容。 这些概念都与WordPress有关,因此,如果您已经了解了这一知识领域,那么BuddyPress的主题设置就不会太有挑战性。
4.自定义bbPress主题的分步指南
与BuddyPress主题类似,您也可以构建自己的自定义bbPress主题。 我在他们的文档中找到了有关bbPress主题的在线指南 ,它提供了一个很好的参考点。
![](/assets/blank.gif)
![](/assets/blank.gif)
当前指南是针对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%/">Profile</a>
6.从成员目录列表中排除用户
有时您可能希望在BuddyPress公开列表中隐藏某些成员。 这可能包括朋友页面,甚至搜索成员。 可能只有一些想法会隐藏您为测试新功能而创建的管理员帐户,主持人或伪造帐户。
我已经复制了一个代码段,您可以将其放在bp-custom.php文件中。 您只需要编辑$excluded_user
ID变量列表即可。 这个小技巧来自Brajesh Singh的博客BuddyDev。
add_action('bp_ajax_querystring','bpdev_exclude_users',20,2);
function bpdev_exclude_users($qs=false,$object=false){//list of users to exclude$excluded_user='1,2,3';//comma separated ids of users whom you want to excludeif($object!='members')//hide for members onlyreturn $qs;$args=wp_parse_args($qs);//check if we are searching or we are listing friends?, do not exclude in this caseif(!empty($args['user_id'])||!empty($args['search_terms']))return $qs;if(!empty($args['exclude']))$args['exclude']=$args['exclude'].','.$excluded_user;else$args['exclude']=$excluded_user;$qs=build_query($args);return $qs;
}
7.注册页面的自定义成员重定向
当您的用户登录并尝试访问注册页面时,BuddyPress会将其发送给成员列表。 这种影响是由核心注册文件中的少量代码引起的。 但是,我们可以使用过滤器将用户重定向到自定义页面上,而不是破解内核。
将以下代码复制到您自己的WordPress中的bp-custom.php或functions.php中。 通常最好将bbPress / BuddyPress代码与WordPress代码分开。 但是这里所有PHP都非常简单,您需要自定义的只是$redirect_to
变量。
function bbg_bp_loggedin_register_page_redirect_to( $redirect_to ) {if ( bp_is_component_front_page( 'register' ) )$redirect_to = bp_get_root_domain() . '/home';return $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完美运行。
function bbg_change_profile_tab_order() {
global $bp;$bp->bp_nav['profile']['position'] = 10;$bp->bp_nav['activity']['position'] = 20;$bp->bp_nav['blogs']['position'] = 30;$bp->bp_nav['friends']['position'] = 40;$bp->bp_nav['messages']['position'] = 50;$bp->bp_nav['groups']['position'] = 60;$bp->bp_nav['settings']['position'] = 70;
}
add_action('bp_setup_nav', 'bbg_change_profile_tab_order', 999 );
9.显示用户开始的帖子总数和主题
bbPress论坛从一开始就是非常通用的。 这并不意味着您不能自定义自己的样式,而是意味着您将进行大量的研究和繁琐的编码工作。
此代码段将显示每个用户的论坛帖子总数和已启动的论坛主题。 这是您在整个网络的论坛上都能找到的典型指标,因此在BuddyPress用户个人资料上也期望这些数字很普遍。
我在2009年的一篇博客文章中找到了这小部分代码。 这些代码非常简单,根据当前的概要文件ID从数据库中提取两个唯一SQL查询。 只需找到bb_profile_data();
在您的模板中,并将其替换为:
<?php bb_profile_data(); ?>
<div id="user-stats">
<?phpglobal $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 "Forum Posts: <b>".$bbdb->get_var($query1)."</b> ";echo " Topics Started: <b>".$bbdb->get_var($query2)."</b>";
?>
</div>
10.覆盖默认的BuddyPress头像
自定义用户头像是大多数开发人员期望在任何CMS中使用的常规功能。 WordPress允许作者和用户使用此功能,但不能很好地转移到BuddyPress中。 另外,您可能希望基于WordPress和BuddyPress设置两个不同的头像。
使用这段代码,您可以覆盖BuddyPress用户的默认头像照片,并将其替换为新的URL。 请注意,这只会显示在尚未自定义头像的成员上。 只需将以下代码添加到bp-custom.php文件中,并确保更新my_default_avatar_url()
函数,以便它为您的新默认图像返回正确的URL。
/*** Disable Gravatar throughout BP*/
add_filter( 'bp_core_fetch_avatar_no_grav', '__return_true' );/*** Provide a global user avatar default*/
function my_default_avatar_url() {return 'http://mysite.com/images/static/avatar.jpg';
}
add_filter( 'bp_core_default_avatar_user', 'my_default_avatar_url' );
其他有用的材料
- bbPress论坛入门
- 12个惊人的Buddypress主题和入门指南
最后的想法
我希望本指南可以对新的BuddyPress和bbPress用户有所帮助。 管理您自己的博客可能是一项艰巨的工作,更不用说整个用户群和社区了。 熟悉BuddyPress可能需要数小时的练习和编码,以使安装正确进行。 如果您迷路了,可以在BuddyPress支持论坛中发布问题,与开发人员和其他知识渊博的团队成员聊天。
翻译自: https://www.hongkiat.com/blog/buddypress-tips-resources/
buddypress主题_BuddyPress入门指南:提示和资源相关推荐
- 生成对抗网络入门指南(内含资源和代码)
python进阶教程 机器学习 深度学习 长按二维码关注 进入正文 前言:春节假期结束了,在这个假期中,原本好好的计划终究没能跟上变化,发生了很多意想不到的事情,导致公众号有近十天没能更新,首先给长期 ...
- EB Tresos 入门指南
作者:Stephen Du 免责声明: 本文为个人学习笔记及总结,仅代表个人观点,尽可能保证内容准确性.复制/转发请注明来源/作者. 欢迎添加微信交流学习. EB Tresos 入门指南 1. 官方资 ...
- 用python公众号开书城步骤_资源 | 开放Python书籍:一本短小精悍的初学者入门指南...
资源 | 开放Python书籍:一本短小精悍的初学者入门指南 作者:机器之心 来源:机器之心 公众号 分享到: 03-25 选自GitHub机器之心整理 参与:思源 如何快速熟悉 Python 编程一 ...
- kl变换简单的解释入门_2010年20个最佳入门指南解释者主题
kl变换简单的解释入门 It's near the end of 2010, and we've put together a list of the 20 best "Explainer& ...
- 变身抓重点小能手:机器学习中的文本摘要入门指南 | 资源
鱼羊 编译整理 量子位 出品 | 公众号 QbitAI 如果你是科研狗,一定有过被摘要支配的恐惧. 如果你想在浩如烟海的互联网信息里寻找重点,一定想要快速排除多余的内容. 基于机器学习的自动文本摘要工 ...
- Midjourney入门指南:简单提示词,搞定高质量应用设计
Midjourney是一款文本到图像的AI工具,可以根据纯文本描述生成图片,例如UI屏幕.应用程序图标.产品图片.标志和吉祥物等.虽然它不能替代UI设计师,但它可以在产品设计和视觉探索的早期阶段成为有 ...
- mPaaS 月度小报|为采购而生,全新资源包上架;前端 2D 游戏化互动入门指南
简介:文末福利大放送,速来~ 本月亮点速览 技术干货 所有前端都要看的 2D 游戏化互动入门基础 mPaaS 动态 资源包上新:除了折扣更是便捷 小程序市场开放公测,复刻超级 App 模型 开发者活动 ...
- 2023年的深度学习入门指南(1) - 从chatgpt入手
2023年的深度学习入门指南(1) - 从chatgpt入手 2012年,加拿大多伦多大学的Hinton教授带领他的两个学生Alex和Ilya一起用AlexNet撞开了深度学习的大门,从此人类走入了深 ...
- 初级软件测试工程师零基础入门指南
初级软件测试工程师零基础入门指南 唐井军 编著 2012年10月 1.基本概念 1.1软件 软件就是可以在计算机上运行的计算机程序,如操作系统Windows.办公软件Office.聊天QQ.手机游戏等 ...
最新文章
- 如何写出一手好的业务代码?
- DPDK — CLI 指令行模块
- 大话设计模式(二 代码规范、重构)
- LabVIEW2018安装教程
- 工作307:uni-富文本的实现逻辑跳转
- python独立log示例_带有Python示例的math.log()方法
- 【Docker】Error: No such image: gotok8s/kube-proxy:v1.16.5
- python中函数的参数_Python小知识-Python中的函数参数(基础篇)
- css样式优先级和权重问题
- 赚钱的方法地推拉新一定算一个
- 设计模式(五)学习----装饰模式
- 论文笔记_S2D.10-2016-NIPS_室外单张图像的深度感知
- 空间矢量脉冲宽度调制(SVPWM)Simulink仿真教程
- 鸿蒙开发板Hi3861_驱动0.95_oled显示屏ssd1306_code-2.0-CANARY_双显示屏效果
- 路由器和带宽猫、AP、AC、交换机
- matlab.m文件
- mysql查询删除的数据历史记录_查询数据库各种历史记录
- python爬取豆瓣电影top250_python3爬取豆瓣top250电影
- FileReader 文件操作
- hibernate MySQL 无法正确插入数据