bp_set_theme_compat_feature( string $theme_id, array $feature = array() )
Set a theme compat feature
Description
Parameters
- $theme_id
-
(Required) The theme id (eg: legacy).
- $feature
-
(Optional) An associative array (eg: array( name => 'feature_name', 'settings' => array() )).
Default value: array()
Source
File: bp-core/bp-core-theme-compatibility.php
function bp_set_theme_compat_feature( $theme_id, $feature = array() ) {
if ( empty( $theme_id ) || empty( $feature['name'] ) ) {
return;
}
// Get BuddyPress instance.
$bp = buddypress();
// Get current theme compat theme.
$theme_compat_theme = $bp->theme_compat->theme;
// Bail if the Theme Compat theme is not in use.
if ( $theme_id !== bp_get_theme_compat_id() ) {
return;
}
$features = $theme_compat_theme->__get( 'features' );
if ( empty( $features ) ) {
$features = array();
}
// Bail if the feature is already registered or no settings were provided.
if ( isset( $features[ $feature['name'] ] ) || empty( $feature['settings'] ) ) {
return;
}
// Add the feature.
$features[ $feature['name'] ] = (object) $feature['settings'];
// The feature is attached to components.
if ( isset( $features[ $feature['name'] ]->components ) ) {
// Set the feature for each concerned component.
foreach ( (array) $features[ $feature['name'] ]->components as $component ) {
// The xProfile component is specific.
if ( 'xprofile' === $component ) {
$component = 'profile';
}
if ( isset( $bp->{$component} ) ) {
if ( isset( $bp->{$component}->features ) ) {
$bp->{$component}->features[] = $feature['name'];
} else {
$bp->{$component}->features = array( $feature['name'] );
}
}
}
}
// Finally update the theme compat features.
$theme_compat_theme->__set( 'features', $features );
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 2.4.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.