bp_detect_theme_compat_with_current_theme()
Set our flag to determine whether theme compat should be enabled.
Description
Theme compat is disabled when a theme meets one of the following criteria: 1) It declares BP support with add_theme_support( ‘buddypress’ ) 2) It is bp-default, or a child theme of bp-default 3) A legacy template is found at members/members-loop.php. This is a fallback check for themes that were derived from bp-default, and have not been updated for BP 1.7+; we make the assumption that any theme in this category will have the members-loop.php template, and so use its presence as an indicator that theme compatibility is not required
Return
(bool) True if the current theme needs theme compatibility.
Source
File: bp-core/bp-core-theme-compatibility.php
197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 | function bp_detect_theme_compat_with_current_theme() { if ( isset( buddypress()->theme_compat->use_with_current_theme ) ) { return buddypress()->theme_compat->use_with_current_theme; } // Theme compat enabled by default. $theme_compat = true; // If the theme supports 'buddypress', bail. if ( current_theme_supports( 'buddypress' ) ) { $theme_compat = false; // If the theme doesn't support BP, do some additional checks. } else { // Bail if theme is a derivative of bp-default. if ( in_array( 'bp-default' , array ( get_template(), get_stylesheet() ) ) ) { $theme_compat = false; // Brute-force check for a BP template. // Examples are clones of bp-default. } elseif ( locate_template( 'members/members-loop.php' , false, false ) ) { $theme_compat = false; } } // Set a flag in the buddypress() singleton so we don't have to run this again. buddypress()->theme_compat->use_with_current_theme = $theme_compat ; return $theme_compat ; } |
Changelog
Version | Description |
---|---|
BuddyPress 1.9.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.