bp_template_include_theme_compat( string $template = '' )
Reset main query vars and filter ‘the_content’ to output a BuddyPress template part as needed.
Description
Parameters
- $template
-
(Optional) Template name.
Default value: ''
Return
(string) $template Template name.
Source
File: bp-core/bp-core-theme-compatibility.php
function bp_template_include_theme_compat( $template = '' ) { // If embed template, bail. if ( true === function_exists( 'is_embed' ) && is_embed() ) { return $template; } // If the current theme doesn't need theme compat, bail at this point. if ( ! bp_use_theme_compat_with_current_theme() ) { return $template; } /** * Fires when resetting main query vars and filtering 'the_content' to output BuddyPress template parts. * * Use this action to execute code that will communicate to BuddyPress's * theme compatibility layer whether or not we're replacing the_content() * with some other template part. * * @since BuddyPress 1.7.0 */ do_action( 'bp_template_include_reset_dummy_post_data' ); // Bail if the template already matches a BuddyPress template. if ( ! empty( buddypress()->theme_compat->found_template ) ) { return $template; } /** * If we are relying on BuddyPress's built in theme compatibility to load * the proper content, we need to intercept the_content, replace the * output, and display ours instead. * * To do this, we first remove all filters from 'the_content' and hook * our own function into it, which runs a series of checks to determine * the context, and then uses the built in shortcodes to output the * correct results from inside an output buffer. * * Uses bp_get_theme_compat_templates() to provide fall-backs that * should be coded without superfluous mark-up and logic (prev/next * navigation, comments, date/time, etc...) * * Hook into 'bp_get_buddypress_template' to override the array of * possible templates, or 'bp_buddypress_template' to override the result. */ if ( bp_is_theme_compat_active() ) { $template = bp_get_theme_compat_templates(); add_filter( 'the_content', 'bp_replace_the_content' ); // Add BuddyPress's head action to wp_head. if ( ! has_action( 'wp_head', 'bp_head' ) ) { add_action( 'wp_head', 'bp_head' ); } } /** * Filters the template name to include. * * @since BuddyPress 1.7.0 * * @param string $template Template name. */ return apply_filters( 'bp_template_include_theme_compat', $template ); }
Changelog
Version | Description |
---|---|
BuddyPress 1.7.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.