Version 2.7.0
Version 2.7.0 is a major BuddyPress feature release.
For Version 2.7.0, the database version (_bp_db_version in wp_options) was 11105, and the Trac revision was 11202. Read the full ticket log here.
Highlights
- Groups Query Overhaul
Huge performance improvements on sites using persistent caching. Learn more about the Groups Query rewrite. - Improved Profile Date Field
New Date Field settings, “Date format” and “Range”, make it easier for site administrators to decide how date-based data will be collected and displayed. - Group Types Integration in Templates
Enable developers to show Group Types on the front end as well as control where the group type information is rendered. Learn how to implement this feature. - Use the Site Icon as Your Site’s Profile Photo
BuddyPress sets the site admin’s profile photo as the default site profile photo on the Sites Directory page. You can now use the Site Icon introduced in WordPress 4.3 instead. - Member Type and Group Type Filters in Users and Groups Admin Screens
Easily filter your members and groups by type and set types in bulk on the users and groups list tables in the dashboard. - Localized Timestamps
Fix inaccurate timestamps due to time zones or page caching with new client-side timestamp handling. - Links to Unsubscribe from Emails
Improve user experience by facilitating the removal of any or all subscriptions via new email tokens and unsubscribe links. - Use WP Page Names for Headings of BP Directory Pages
Whatever you choose as the title of your Activity, Sites, Members, or Groups directory pages on the back end, is what you’ll get as the heading on the front end. - Accessibility Updates for the Front End and Back End
Continued improvements for universal access help make BuddyPress back- and front-end screens usable for everyone (and on more devices). - Refactored BP_Button Class to Accept New Arguments
Provides developers with improved syntax and more control over the rendering of buttons. - Improvements to a Single Group’s Management Screens
Improved markup, new modular group management templates, and a new member search form are just some of the enhancements added to the single group admin screens. - Support for Querying for Groups by New Column
parent_id
Query support for hierarchical groups makes it much easier for developers to add custom front-end functionality. - Many, Many Performance Improvements
Improved performance by removing extra database queries, adding new cache calls, and removing the number of loops inbp_get_user_groups().
Features
Activity
- Don’t allow a Favorite click when AJAX request is in progress. (#3412)
- Add CSS class to inserted mentions for theme devs to style. (#5765)
- Fix activity comment delete link when Activity Directory page is nested. (#7236)
- Incrementor-based query caching for the Activity component. (#7237)
- Activity query cache means we no longer need bp_activity_sitewide_front cache. (#7242)
- Pass unique identifier to
bp_parse_args() filter in bp_activity_get(). (#7250)
Administration
- Add a “select all” link to the BuddyPress menu section for the WP Nav Menu system. (#5260)
- Improve user registration workflow for administrators. (#7193)
- a11y: Mark required fields as required in xProfile admin. (#7274)
Blogs
- Use WP 4.3 site icon feature to set a blog’s “profile photo.” (#6544)
- Introduce
bp_get_blogs_pagination_count() to return the blogs pagination. (#7118)
- Fix issue with calculating activity comment depth. (#7134)
- a11y: Group radio buttons in fieldsets for Site creation. (#7271)
Build/Test Tools
- Upload patches directly from the command line and add GitHub URL support for Trac bug gardeners and above. (#6923)
- Update grunt packages. (#6958)
- Fix reference in
upload_error_handler() for failing unit tests for attachments on PHP 7.0.9. (#7204)
- Add code coverage with https://codecov.io. (#7207)
- Fix message factory create/get methods. (#7234)
- Ensure that the data exists before each test – set up page mappings in
setUp() rather than setUpBeforeClass(). (#7241)
- Add PHPUnit factory for friendships. (#7243)
- Fix plugin activation in PHPUnit bootstrap. (#7254)
- Update build tools’ NPM packages to latest versions. (r10973)
- Travis-CI: cache
node_modules directory. (r10974, #7209)
- Travis-CI: run tests on HHVM. (r10975)
- Update Composer package.json
support properties. (r10996)
Core
- BuddyPress 2.7 will require WordPress 4.2. (r10951)
- Adjust how our error message is registered on the WP login page. (#4990)
- Remove redundant strtotime() calls. (#5781)
- Make sure user last activity is saved as a date string. (#5781)
- Prevent PHP warning regarding possible empty needle variables for
bp_modify_page_title(). (#6391)
- Use WP page names for BP directory pages headings. (#6765)
- Stop loading deprecated code files for new installs from 2.7 onwards. (#6839)
- Audit all DB fetch methods to return integers where appropriate. (#6977)
- a11y: Remove redundant
title attributes. (#7090)
- Explicitly set database collation type when installing BuddyPress. (#7117)
- Remove WordPress DB lookups on BuddyPress single pages. (#7120)
- Move
bp_register_post_types and bp_register_taxonomies hooks before bp_core_set_uri_globals.
- Fix PHP7 compatibility. (#7184)
- Improve
bp_current_user_can() including backward compatibility. (#7192)
- Prevent BP from being updated to BP 2.8 when minimum requirements are not met. (#7196)
- In
bp_core_remove_nav_item(), fix notice when a nav item’s screen function uses a class method as a callback. (#7203)
- Improve markup of the BuddyPress Tools screen. (#7219)
- Refactor
BP_Button Class to Accept New Arguments. (#7226)
- Emails: set value of
bp-emails-unsubscribe-salt option for new installs. (#7227)
bp_sort_by_key(): Add $preserve_keys parameter. (#7238)
- Fix inconsistencies in PHPDoc comments for various component loaders. (#7239)
BP_User_Query: Bail early if an array containing only 0 is passed to ‘include’ in user queries. (#7248)
- Only set
is_page back to true after a loop if it was true to begin with. (#7253)
- Stop
bp_get_default_options() adding missing options to the database. (#7254)
- Add filter for
bp_core_directory_page_default_title array. (#7259)
- Add multisite-aware wrapper functions for working with BuddyPress taxonomies via
get_objects_in_term(). (#7263)
- Welcome Screen for BP 2.7.0 (#7267)
- Move
'bp_register_post_types' and 'bp_register_taxonomies' hooks before'bp_core_set_uri_globals'. (#7151)
- Fix indentation across all components. (r11032)
- Introduce
BP_Core_HTML_Element class. (r11112)
Emails
- Add links to unsubscribe from Emails. (#6932)
- Remove HTML entities from plaintext emails. (#6949)
- Set value of
bp-emails-unsubscribe-salt option for new installs. (#7254)
Extended Profile
- New Date Field settings, “Date format” and “Range”. (#5500)
- Adds new field type specific filter to
bp_get_member_profile_data function for conditional filtering. (#6165)
- Do not duplicate populate logic in the BP_XProfile_Field class. (#7114)
- Always initialize fields property when fetching field groups. (#7154)
- In
BP_XProfile_Query, fix variable name typo that prevented table JOINs from shared between meta query clauses. (#7202)
- Fix cache group name in
bp_profile_get_field_groups. (r10944)
- Add call to parent constructor in
Placeholder field type. (r11039)
Legacy Forums
- Fix persistent caching issue with bbPress v1.2 (#)
- Fix i18n error in legacy forums templating code. (#6120)
- Fix use of deprecated SQL escaping function in legacy forums integration code. (#6157)
Friends
- Add caching to
BP_Friends_Friendship class. (#6878)
- Move friend action hooks to
bp_actions instead of bp_init, which is too early. (#7221)
Groups
- Groups query overhaul to boost flexibility, consistency, cacheability, and performance. (#5451, #7208)
- Group type front-end integration. (#7210)
- Query support for hierarchical groups (#3961)
- Improve group management members screen. (#7105)
- Overhaul
BP_Groups_Group::get() SQL query. (#5099)
- Add members search form in Groups > Manage > Members screen. (#6385)
- Make sure
BP_Group_Extension::widget_display() can be used on custom front templates. (#7131)
- Display and filter by group type on Dashboard > Groups. (#7175)
- Optimize performance of
bp_get_user_groups(). ()
- Simplify markup in settings pane of edit group screen in wp-admin. (#7211)
- Return active types only in
bp_groups_get_group_type(). (#7224)
- Rename
loop_start and loop_end actions for compatibility with plugins that hook to WP actions of the same name. (#7247)
- Add action hooks outside of form in Groups admin. (#7249)
- Fix various notices during implementation of group types. (#7281)
- Improve
BP_Groups_Group::filter_user_groups(). (r10937)
- Allow developers to set arbitrary props on BP_Groups_Group objects. (#7296)
- Don’t use AJAX to refresh directories when filtered by type. (#7291)
I18N
- Fix un-translatable strings in the
wp-admin management screen. (#6964)
- Make sure that
bp_core_enqueue_livestamp() results are translatable. (#7275)
- Correct escaping for translatable string. (#7281)
Media
- Fixes phpdoc for
bp_upload_dir return type. (#7097)
- Use HTTPS when generating cover image URL. (#7220)
Members
- Display and filter by member type on Dashboard > Users (#6060)
- Escape various URL output functions. (#7132)
- Return active types only in
bp_get_member_type(). (#7225)
- Invalidate query caches when a user’s
last_activity is updated. (#7245)
Messages
- Accept a
$user_id parameter in messages_delete_thread(). (#7235)
Settings
- Make sure the Blogs directory page is dynamically created when activating the component. (#7150)
Templates
- Group join/leave buttons should have group-button class after AJAX request. (#7229)
- Move component directory search markup to
common template. (#6844)
- Split group single admin.php in separate template files. (#7079)
- Remove duplicate selector in stylesheet. (#7190)
- a11y: Add WAI-ARIA live region tags to AJAX-updated areas (#3263)
- a11y: Alert screen readers about new messages inserted through
template_notices. (#3263)
- a11y: Bump headings in template files. (#6875, #6876, #6877, #6878, #6879, #6880, #6882, #7214, #7215, #7217, #7223, #6871)
- a11y: Add headings for screen readers in template files. (#7216)
- a11y: Group radio buttons in Group > Create – Step 2 within fieldsets. (#6881)
- a11y: Provide sufficient color contrast ratio to meet WCAG 2.0 AA standards. (#7222)
- a11y: Differentiate navigation landmarks in front-end templates. (#7256)
- a11y: Add navigation role to profile field group links in Profile > Edit screen. (#7256)
Toolbar & Notifications
- Pass user ID value to
bp_notifications_get_unread_notification_count filter for better conditional checking. (#6110)
- Fix
bp_notification_before_save filter being called too late to allow changes to notification. (#7213)
- Load all notification-related code conditionally for each component. (r11022)
Activity
- Don’t allow a Favorite click when AJAX request is in progress. (#3412)
- Add CSS class to inserted mentions for theme devs to style. (#5765)
- Fix activity comment delete link when Activity Directory page is nested. (#7236)
- Incrementor-based query caching for the Activity component. (#7237)
- Activity query cache means we no longer need bp_activity_sitewide_front cache. (#7242)
- Pass unique identifier to
bp_parse_args()filter inbp_activity_get(). (#7250)
Administration
- Add a “select all” link to the BuddyPress menu section for the WP Nav Menu system. (#5260)
- Improve user registration workflow for administrators. (#7193)
- a11y: Mark required fields as required in xProfile admin. (#7274)
Blogs
- Use WP 4.3 site icon feature to set a blog’s “profile photo.” (#6544)
- Introduce
bp_get_blogs_pagination_count()to return the blogs pagination. (#7118) - Fix issue with calculating activity comment depth. (#7134)
- a11y: Group radio buttons in fieldsets for Site creation. (#7271)
Build/Test Tools
- Upload patches directly from the command line and add GitHub URL support for Trac bug gardeners and above. (#6923)
- Update grunt packages. (#6958)
- Fix reference in
upload_error_handler()for failing unit tests for attachments on PHP 7.0.9. (#7204) - Add code coverage with https://codecov.io. (#7207)
- Fix message factory create/get methods. (#7234)
- Ensure that the data exists before each test – set up page mappings in
setUp()rather thansetUpBeforeClass(). (#7241) - Add PHPUnit factory for friendships. (#7243)
- Fix plugin activation in PHPUnit bootstrap. (#7254)
- Update build tools’ NPM packages to latest versions. (r10973)
- Travis-CI: cache
node_modulesdirectory. (r10974, #7209) - Travis-CI: run tests on HHVM. (r10975)
- Update Composer package.json
supportproperties. (r10996)
Core
- BuddyPress 2.7 will require WordPress 4.2. (r10951)
- Adjust how our error message is registered on the WP login page. (#4990)
- Remove redundant strtotime() calls. (#5781)
- Make sure user last activity is saved as a date string. (#5781)
- Prevent PHP warning regarding possible empty needle variables for
bp_modify_page_title(). (#6391) - Use WP page names for BP directory pages headings. (#6765)
- Stop loading deprecated code files for new installs from 2.7 onwards. (#6839)
- Audit all DB fetch methods to return integers where appropriate. (#6977)
- a11y: Remove redundant
titleattributes. (#7090) - Explicitly set database collation type when installing BuddyPress. (#7117)
- Remove WordPress DB lookups on BuddyPress single pages. (#7120)
- Move
bp_register_post_typesandbp_register_taxonomieshooks beforebp_core_set_uri_globals. - Fix PHP7 compatibility. (#7184)
- Improve
bp_current_user_can()including backward compatibility. (#7192) - Prevent BP from being updated to BP 2.8 when minimum requirements are not met. (#7196)
- In
bp_core_remove_nav_item(), fix notice when a nav item’s screen function uses a class method as a callback. (#7203) - Improve markup of the BuddyPress Tools screen. (#7219)
- Refactor
BP_ButtonClass to Accept New Arguments. (#7226) - Emails: set value of
bp-emails-unsubscribe-saltoption for new installs. (#7227) bp_sort_by_key(): Add$preserve_keysparameter. (#7238)- Fix inconsistencies in PHPDoc comments for various component loaders. (#7239)
BP_User_Query: Bail early if an array containing only 0 is passed to ‘include’ in user queries. (#7248)- Only set
is_pageback to true after a loop if it was true to begin with. (#7253) - Stop
bp_get_default_options()adding missing options to the database. (#7254) - Add filter for
bp_core_directory_page_default_titlearray. (#7259) - Add multisite-aware wrapper functions for working with BuddyPress taxonomies via
get_objects_in_term(). (#7263) - Welcome Screen for BP 2.7.0 (#7267)
- Move
'bp_register_post_types'and'bp_register_taxonomies'hooks before'bp_core_set_uri_globals'. (#7151) - Fix indentation across all components. (r11032)
- Introduce
BP_Core_HTML_Elementclass. (r11112)
Emails
- Add links to unsubscribe from Emails. (#6932)
- Remove HTML entities from plaintext emails. (#6949)
- Set value of
bp-emails-unsubscribe-saltoption for new installs. (#7254)
Extended Profile
- New Date Field settings, “Date format” and “Range”. (#5500)
- Adds new field type specific filter to
bp_get_member_profile_datafunction for conditional filtering. (#6165) - Do not duplicate populate logic in the BP_XProfile_Field class. (#7114)
- Always initialize fields property when fetching field groups. (#7154)
- In
BP_XProfile_Query, fix variable name typo that prevented table JOINs from shared between meta query clauses. (#7202) - Fix cache group name in
bp_profile_get_field_groups. (r10944) - Add call to parent constructor in
Placeholderfield type. (r11039)
Legacy Forums
- Fix persistent caching issue with bbPress v1.2 (#)
- Fix i18n error in legacy forums templating code. (#6120)
- Fix use of deprecated SQL escaping function in legacy forums integration code. (#6157)
Friends
- Add caching to
BP_Friends_Friendshipclass. (#6878) - Move friend action hooks to
bp_actionsinstead ofbp_init, which is too early. (#7221)
Groups
- Groups query overhaul to boost flexibility, consistency, cacheability, and performance. (#5451, #7208)
- Group type front-end integration. (#7210)
- Query support for hierarchical groups (#3961)
- Improve group management members screen. (#7105)
- Overhaul
BP_Groups_Group::get()SQL query. (#5099) - Add members search form in Groups > Manage > Members screen. (#6385)
- Make sure
BP_Group_Extension::widget_display()can be used on custom front templates. (#7131) - Display and filter by group type on Dashboard > Groups. (#7175)
- Optimize performance of
bp_get_user_groups(). () - Simplify markup in settings pane of edit group screen in wp-admin. (#7211)
- Return active types only in
bp_groups_get_group_type().(#7224) - Rename
loop_startandloop_end actionsfor compatibility with plugins that hook to WP actions of the same name. (#7247) - Add action hooks outside of form in Groups admin. (#7249)
- Fix various notices during implementation of group types. (#7281)
- Improve
BP_Groups_Group::filter_user_groups(). (r10937) - Allow developers to set arbitrary props on BP_Groups_Group objects. (#7296)
- Don’t use AJAX to refresh directories when filtered by type. (#7291)
I18N
- Fix un-translatable strings in the
wp-adminmanagement screen. (#6964) - Make sure that
bp_core_enqueue_livestamp()results are translatable. (#7275) - Correct escaping for translatable string. (#7281)
Media
- Fixes phpdoc for
bp_upload_dirreturn type. (#7097) - Use HTTPS when generating cover image URL. (#7220)
Members
- Display and filter by member type on Dashboard > Users (#6060)
- Escape various URL output functions. (#7132)
- Return active types only in
bp_get_member_type().(#7225) - Invalidate query caches when a user’s
last_activityis updated. (#7245)
Messages
- Accept a
$user_idparameter inmessages_delete_thread(). (#7235)
Settings
- Make sure the Blogs directory page is dynamically created when activating the component. (#7150)
Templates
- Group join/leave buttons should have group-button class after AJAX request. (#7229)
- Move component directory search markup to
commontemplate. (#6844) - Split group single admin.php in separate template files. (#7079)
- Remove duplicate selector in stylesheet. (#7190)
- a11y: Add WAI-ARIA live region tags to AJAX-updated areas (#3263)
- a11y: Alert screen readers about new messages inserted through
template_notices. (#3263) - a11y: Bump headings in template files. (#6875, #6876, #6877, #6878, #6879, #6880, #6882, #7214, #7215, #7217, #7223, #6871)
- a11y: Add headings for screen readers in template files. (#7216)
- a11y: Group radio buttons in Group > Create – Step 2 within fieldsets. (#6881)
- a11y: Provide sufficient color contrast ratio to meet WCAG 2.0 AA standards. (#7222)
- a11y: Differentiate navigation landmarks in front-end templates. (#7256)
- a11y: Add navigation role to profile field group links in Profile > Edit screen. (#7256)
Toolbar & Notifications
- Pass user ID value to
bp_notifications_get_unread_notification_countfilter for better conditional checking. (#6110) - Fix
bp_notification_before_savefilter being called too late to allow changes to notification. (#7213) - Load all notification-related code conditionally for each component. (r11022)