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_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
andbp_register_taxonomies
hooks 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_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 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_start
andloop_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 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
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)