During a development cycle, we can deprecate functions the plugin is not using anymore. In this case we are moving this deprecated code into a specific file named according to the BuddyPress version when it was deprecated. For example, the bp_insert_site_hook()
function was deprecated during the 10.0.0 development cycle and was moved into the /bp-core/deprecated/10.0.php
file.
Before 11.0.0, deprecated code was never loaded when BuddyPress was first installed or if the BP_IGNORE_DEPRECATED
constant was set to true
. Deprecated code was only loaded if this constant wasn’t set to true
and if BuddyPress has been regularly upgraded since version 2.7. This means if you first installed version 8.0.0 of BuddyPress, deprecated code was never loaded. This was wrong considering BuddyPress Plugin and Theme authors who were not able to be informed by setting their WP_DEBUG
constant to true
that a function was deprecated (and eventually replaced by another one) and no more available.
Starting in 11.0.0, we’re improving our deprecated code loading strategy
First we are keeping these 2 behaviors from previous versions:
- Deprecated code is never loaded when you first install BuddyPress.
- Deprecated code is not loaded when you define the
BP_IGNORE_DEPRECATED
constant totrue
.
Second we’re introducing a new constant to force all deprecated code to be loaded: BP_LOAD_DEPRECATED
. Defining this constant to true
can help you to identify deprecated functions one of your plugins or you active theme is still using although it shouldn’t.
Third, when BuddyPress has been upgraded, we are loading the code that was deprecated during the 2 previous versions.
To read more about the story of this change, you can have a look at this ticket #8687.
At the time I’m writing these lines, we’ve started the 11.0.0 beta testing period. As this change is pretty important, we strongly advise BuddyPress Plugin and Theme authors to test BuddyPress 11.0.0 pre-versions.