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.