Title: WP_Theme_JSON::get_setting_nodes
Published: July 20, 2021
Last modified: February 24, 2026

---

# WP_Theme_JSON::get_setting_nodes( array $theme_json, array $selectors = array() ): array

## In this article

 * [Description](https://developer.wordpress.org/reference/classes/wp_theme_json/get_setting_nodes/?output_format=md#description)
 * [Parameters](https://developer.wordpress.org/reference/classes/wp_theme_json/get_setting_nodes/?output_format=md#parameters)
 * [Return](https://developer.wordpress.org/reference/classes/wp_theme_json/get_setting_nodes/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/classes/wp_theme_json/get_setting_nodes/?output_format=md#source)
 * [Changelog](https://developer.wordpress.org/reference/classes/wp_theme_json/get_setting_nodes/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/classes/wp_theme_json/get_setting_nodes/?output_format=md#wp--skip-link--target)

Builds metadata for the setting nodes, which returns in the form of:

## 󠀁[Description](https://developer.wordpress.org/reference/classes/wp_theme_json/get_setting_nodes/?output_format=md#description)󠁿

[ [ ‘path’ => [‘path’, ‘to’, ‘some’, ‘node’ ], ‘selector’ => ‘CSS selector for some
node’ ], [ ‘path’ => [ ‘path’, ‘to’, ‘other’, ‘node’ ], ‘selector’ => ‘CSS selector
for other node’ ], ]

## 󠀁[Parameters](https://developer.wordpress.org/reference/classes/wp_theme_json/get_setting_nodes/?output_format=md#parameters)󠁿

 `$theme_json`arrayrequired

The tree to extract setting nodes from.

`$selectors`arrayoptional

List of selectors per block.

Default:`array()`

## 󠀁[Return](https://developer.wordpress.org/reference/classes/wp_theme_json/get_setting_nodes/?output_format=md#return)󠁿

 array An array of setting nodes metadata.

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wp_theme_json/get_setting_nodes/?output_format=md#source)󠁿

    ```php
    protected static function get_setting_nodes( $theme_json, $selectors = array() ) {
    	$nodes = array();
    	if ( ! isset( $theme_json['settings'] ) ) {
    		return $nodes;
    	}

    	// Top-level.
    	$nodes[] = array(
    		'path'     => array( 'settings' ),
    		'selector' => static::ROOT_CSS_PROPERTIES_SELECTOR,
    	);

    	// Calculate paths for blocks.
    	if ( ! isset( $theme_json['settings']['blocks'] ) ) {
    		return $nodes;
    	}

    	foreach ( $theme_json['settings']['blocks'] as $name => $node ) {
    		$selector = null;
    		if ( isset( $selectors[ $name ]['selector'] ) ) {
    			$selector = $selectors[ $name ]['selector'];
    		}

    		$nodes[] = array(
    			'path'     => array( 'settings', 'blocks', $name ),
    			'selector' => $selector,
    		);
    	}

    	return $nodes;
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/class-wp-theme-json.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-includes/class-wp-theme-json.php#L2539)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/class-wp-theme-json.php#L2539-L2569)

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wp_theme_json/get_setting_nodes/?output_format=md#changelog)󠁿

| Version | Description | 
| [5.8.0](https://developer.wordpress.org/reference/since/5.8.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwp_theme_json%2Fget_setting_nodes%2F)
before being able to contribute a note or feedback.