Title: WP_Theme_JSON::process_pseudo_selectors
Published: May 20, 2026

---

# WP_Theme_JSON::process_pseudo_selectors( array $node, string $base_selector, array $settings, string $block_name ): array

## In this article

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

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

This function’s access is marked private. This means it is not intended for use 
by plugin or theme developers, only by core. It is listed here for completeness.

Processes pseudo-selectors for any node (block or variation).

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

 `$node`arrayrequired

The node data (block or variation).

`$base_selector`stringrequired

The base selector.

`$settings`arrayrequired

The theme settings.

`$block_name`stringrequired

The block name.

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

 array Array of pseudo-selector declarations.

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

    ```php
    private static function process_pseudo_selectors( $node, $base_selector, $settings, $block_name ) {
    	$pseudo_declarations = array();

    	if ( ! isset( static::VALID_BLOCK_PSEUDO_SELECTORS[ $block_name ] ) ) {
    		return $pseudo_declarations;
    	}

    	foreach ( static::VALID_BLOCK_PSEUDO_SELECTORS[ $block_name ] as $pseudo_selector ) {
    		if ( isset( $node[ $pseudo_selector ] ) ) {
    			$combined_selector                         = static::append_to_selector( $base_selector, $pseudo_selector );
    			$declarations                              = static::compute_style_properties( $node[ $pseudo_selector ], $settings, null, null );
    			$pseudo_declarations[ $combined_selector ] = $declarations;
    		}
    	}

    	return $pseudo_declarations;
    }
    ```

[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/7.0/src/wp-includes/class-wp-theme-json.php#L749)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.0/src/wp-includes/class-wp-theme-json.php#L749-L765)

## User Contributed Notes

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