WP_Theme_JSON::get_style_nodes()
Builds metadata for the style nodes, which returns in the form of:
[ [ 'path' => [ 'path', 'to', 'some', 'node' ], 'selector' => 'CSS selector for some node', 'duotone' => 'CSS selector for duotone for some node' ], [ 'path' => ['path', 'to', 'other', 'node' ], 'selector' => 'CSS selector for other node', 'duotone' => null ],]
Метод класса: WP_Theme_JSON{}
Хуки из метода
Возвращает
Массив
. An array of style nodes metadata.
Использование
$result = WP_Theme_JSON::get_style_nodes( $theme_json, $selectors, $options );
- $theme_json(массив) (обязательный)
- The tree to extract style nodes from.
- $selectors(массив)
- List of selectors per block.
По умолчанию: array() - $options(массив)
An array of options for now used for internal purposes only (may change without notice).
По умолчанию: array()
- include_block_style_variations(true|false)
Includes style nodes for block style variations.
По умолчанию: false
- include_block_style_variations(true|false)
Список изменений
С версии 5.8.0 | Введена. |
С версии 6.6.0 | Added options array for modifying generated nodes. |
Код WP_Theme_JSON::get_style_nodes() WP Theme JSON::get style nodes WP 6.6.2
protected static function get_style_nodes( $theme_json, $selectors = array(), $options = array() ) { $nodes = array(); if ( ! isset( $theme_json['styles'] ) ) { return $nodes; } // Top-level. $nodes[] = array( 'path' => array( 'styles' ), 'selector' => static::ROOT_BLOCK_SELECTOR, ); if ( isset( $theme_json['styles']['elements'] ) ) { foreach ( self::ELEMENTS as $element => $selector ) { if ( ! isset( $theme_json['styles']['elements'][ $element ] ) ) { continue; } $nodes[] = array( 'path' => array( 'styles', 'elements', $element ), 'selector' => static::ELEMENTS[ $element ], ); // Handle any pseudo selectors for the element. if ( isset( static::VALID_ELEMENT_PSEUDO_SELECTORS[ $element ] ) ) { foreach ( static::VALID_ELEMENT_PSEUDO_SELECTORS[ $element ] as $pseudo_selector ) { if ( isset( $theme_json['styles']['elements'][ $element ][ $pseudo_selector ] ) ) { $nodes[] = array( 'path' => array( 'styles', 'elements', $element ), 'selector' => static::append_to_selector( static::ELEMENTS[ $element ], $pseudo_selector ), ); } } } } } // Blocks. if ( ! isset( $theme_json['styles']['blocks'] ) ) { return $nodes; } $block_nodes = static::get_block_nodes( $theme_json, $selectors, $options ); foreach ( $block_nodes as $block_node ) { $nodes[] = $block_node; } /** * Filters the list of style nodes with metadata. * * This allows for things like loading block CSS independently. * * @since 6.1.0 * * @param array $nodes Style nodes with metadata. */ return apply_filters( 'wp_theme_json_get_style_nodes', $nodes ); }