WordPress可能是使用最广泛的开源CMS,其中包含数千个免费主题和插件。 该软件的粉丝最有可能听说过臭名昭著的WordPress网站BuddyPress插件 。 您可以扩展功能,以包括用户个人资料页面,私人消息传递甚至用户讨论论坛。

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

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

在跳入列表之前,我将提供简要概述, 解释 BuddyPress中的某些功能 。 许多初次使用BuddyPress和bbPress论坛的用户会感到困惑。 请允许我Swift澄清这些想法。

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 。 这样,您就可以复制和粘贴PHP代码,从而更改WordPress核心中的设置,而无需实际更改核心文件。 BuddyPress使用名为bp-custom.php的文件采用了该系统。

联机文档通过一些示例很好地解释了该文件。 基本上,您可以在插件目录 /wp-content/plugins/ 创建此文件,然后只需添加所有代码即可。 无论您当前的WordPress和BuddyPress主题如何,这些命令都会执行。

您编写的功能代码与放置在核心文件中的其他功能绑定在一起。 您可以通过使用过滤器操作来访问这些挂钩,就像在WordPress内部一样。

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

3.开发BuddyPress主题

这一系列的模板文章分为三个不同的部分,全部由亚当·默里(Adam Murray)撰写,他写了我们较早的入门教程。 尽管关于BuddyPress的主题可能还有其他指南,但我还是觉得Adam对于初学者来说会更详细。

如果您只是入门,那么可以从这三部分的社论中学到的技巧非常了不起。 如果您已经熟悉开发WordPress主题,那么大多数代码将看起来很熟悉。

您应该调用类似的函数,例如the_content()the_category() 。 但是BuddyPress显然具有其自己的一组与用户个人资料进行交互的功能和方法。

内容分为多个循环,通常是PHP / SQL查询从数据库检索内容。 您可能将这些循环视为BuddyPress内部的某些不同页面。

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

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

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

当前指南是针对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入门指南:提示和资源相关推荐

  1. 生成对抗网络入门指南(内含资源和代码)

    python进阶教程 机器学习 深度学习 长按二维码关注 进入正文 前言:春节假期结束了,在这个假期中,原本好好的计划终究没能跟上变化,发生了很多意想不到的事情,导致公众号有近十天没能更新,首先给长期 ...

  2. EB Tresos 入门指南

    作者:Stephen Du 免责声明: 本文为个人学习笔记及总结,仅代表个人观点,尽可能保证内容准确性.复制/转发请注明来源/作者. 欢迎添加微信交流学习. EB Tresos 入门指南 1. 官方资 ...

  3. 用python公众号开书城步骤_资源 | 开放Python书籍:一本短小精悍的初学者入门指南...

    资源 | 开放Python书籍:一本短小精悍的初学者入门指南 作者:机器之心 来源:机器之心 公众号 分享到: 03-25 选自GitHub机器之心整理 参与:思源 如何快速熟悉 Python 编程一 ...

  4. kl变换简单的解释入门_2010年20个最佳入门指南解释者主题

    kl变换简单的解释入门 It's near the end of 2010, and we've put together a list of the 20 best "Explainer& ...

  5. 变身抓重点小能手:机器学习中的文本摘要入门指南 | 资源

    鱼羊 编译整理 量子位 出品 | 公众号 QbitAI 如果你是科研狗,一定有过被摘要支配的恐惧. 如果你想在浩如烟海的互联网信息里寻找重点,一定想要快速排除多余的内容. 基于机器学习的自动文本摘要工 ...

  6. Midjourney入门指南:简单提示词,搞定高质量应用设计

    Midjourney是一款文本到图像的AI工具,可以根据纯文本描述生成图片,例如UI屏幕.应用程序图标.产品图片.标志和吉祥物等.虽然它不能替代UI设计师,但它可以在产品设计和视觉探索的早期阶段成为有 ...

  7. mPaaS 月度小报|为采购而生,全新资源包上架;前端 2D 游戏化互动入门指南

    简介:文末福利大放送,速来~ 本月亮点速览 技术干货 所有前端都要看的 2D 游戏化互动入门基础 mPaaS 动态 资源包上新:除了折扣更是便捷 小程序市场开放公测,复刻超级 App 模型 开发者活动 ...

  8. 2023年的深度学习入门指南(1) - 从chatgpt入手

    2023年的深度学习入门指南(1) - 从chatgpt入手 2012年,加拿大多伦多大学的Hinton教授带领他的两个学生Alex和Ilya一起用AlexNet撞开了深度学习的大门,从此人类走入了深 ...

  9. 初级软件测试工程师零基础入门指南

    初级软件测试工程师零基础入门指南 唐井军 编著 2012年10月 1.基本概念 1.1软件 软件就是可以在计算机上运行的计算机程序,如操作系统Windows.办公软件Office.聊天QQ.手机游戏等 ...

最新文章

  1. 如何写出一手好的业务代码?
  2. DPDK — CLI 指令行模块
  3. 大话设计模式(二 代码规范、重构)
  4. LabVIEW2018安装教程
  5. 工作307:uni-富文本的实现逻辑跳转
  6. python独立log示例_带有Python示例的math.log()方法
  7. 【Docker】Error: No such image: gotok8s/kube-proxy:v1.16.5
  8. python中函数的参数_Python小知识-Python中的函数参数(基础篇)
  9. css样式优先级和权重问题
  10. 赚钱的方法地推拉新一定算一个
  11. 设计模式(五)学习----装饰模式
  12. 论文笔记_S2D.10-2016-NIPS_室外单张图像的深度感知
  13. 空间矢量脉冲宽度调制(SVPWM)Simulink仿真教程
  14. 鸿蒙开发板Hi3861_驱动0.95_oled显示屏ssd1306_code-2.0-CANARY_双显示屏效果
  15. 路由器和带宽猫、AP、AC、交换机
  16. matlab.m文件
  17. mysql查询删除的数据历史记录_查询数据库各种历史记录
  18. python爬取豆瓣电影top250_python3爬取豆瓣top250电影
  19. FileReader 文件操作
  20. hibernate MySQL 无法正确插入数据

热门文章

  1. 【mask2former】环境配置+cityscapes全景分割
  2. 服务器如何安装windows7系统,安装Windows 7系统
  3. 华为发布量子计算模拟器HiQ云服务平台
  4. Java的Io模型你了解多少?linuxmysql安装位置
  5. 基于MT4的 国内期货交易系统 150ms
  6. xmd后缀名改mp3_MP3提取转换器
  7. Linux命令:man
  8. 【蓝桥杯】孪生素数——十个最小
  9. 适应iphone5 屏幕拉长的办法
  10. java 线框图,你知道线框图和原型有啥区别吗