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.