WP_Theme_JSON::should_override_preset() – Returns whether a presets should be overridden or not.

You appear to be a bot. Output may be restricted

Description

Returns whether a presets should be overridden or not.

Usage

$boolean = WP_Theme_JSON::should_override_preset( $theme_json, $path, $override );

Parameters

$theme_json
( array ) required – The theme.json like structure to inspect.
$path
( array ) required – Path to inspect.
$override
( bool|array ) required – Data to compute whether to override the preset.

Returns

boolean

Source

File name: wordpress/wp-includes/class-wp-theme-json.php


Lines:

1 to 35 of 35
  protected static function should_override_preset( $theme_json, $path, $override ) {
    _deprecated_function( __METHOD__, '6.0.0', 'get_metadata_boolean' );

    if ( is_bool( $override ) ) {
      return $override;
    }

    /*
		 * The relationship between whether to override the defaults
		 * and whether the defaults are enabled is inverse:
		 *
		 * - If defaults are enabled  => theme presets should not be overridden
		 * - If defaults are disabled => theme presets should be overridden
		 *
		 * For example, a theme sets defaultPalette to false,
		 * making the default palette hidden from the user.
		 * In that case, we want all the theme presets to be present,
		 * so they should override the defaults.
		 */
    if ( is_array( $override ) ) {
      $value = _wp_array_get( $theme_json, array_merge( $path, $override ) );
      if ( isset( $value ) ) {
        return ! $value;
      }

      // Search the top-level key if none was found for this node.
      $value = _wp_array_get( $theme_json, array_merge( array( 'settings' ), $override ) );
      if ( isset( $value ) ) {
        return ! $value;
      }

      return true;
    }
  }
 

 View on GitHub View on Trac