WP_Theme_JSON::get_default_slugs()protected staticWP 5.9.0

Returns the default slugs for all the presets in an associative array whose keys are the preset paths and the leafs is the list of slugs.

For example:

array(
  'color' => array(
	'palette'   => array( 'slug-1', 'slug-2' ),
	'gradients' => array( 'slug-3', 'slug-4' ),
  ),
)

Method of the class: WP_Theme_JSON{}

No Hooks.

Return

Array.

Usage

$result = WP_Theme_JSON::get_default_slugs( $data, $node_path );
$data(array) (required)
A theme.json like structure.
$node_path(array) (required)
The path to inspect. It's 'settings' by default.

Changelog

Since 5.9.0 Introduced.

WP_Theme_JSON::get_default_slugs() code WP 6.5.2

protected static function get_default_slugs( $data, $node_path ) {
	$slugs = array();

	foreach ( static::PRESETS_METADATA as $metadata ) {
		$path = $node_path;
		foreach ( $metadata['path'] as $leaf ) {
			$path[] = $leaf;
		}
		$path[] = 'default';

		$preset = _wp_array_get( $data, $path, null );
		if ( ! isset( $preset ) ) {
			continue;
		}

		$slugs_for_preset = array();
		foreach ( $preset as $item ) {
			if ( isset( $item['slug'] ) ) {
				$slugs_for_preset[] = $item['slug'];
			}
		}

		_wp_array_set( $slugs, $metadata['path'], $slugs_for_preset );
	}

	return $slugs;
}