GC_Block_Supports::apply_block_supports()

最后更新于:2021-11-26 10:49:42

GC_Block_Supports::apply_block_supports()

Generates an array of HTML attributes, such as classes, by applying to the given block all of the features that the block supports.

响应

(array) Array of HTML attributes.

源文件

文件: gc-includes/class-gc-block-supports.php

	public function apply_block_supports() {
		$block_attributes = self::$block_to_render['attrs'];
		$block_type       = GC_Block_Type_Registry::get_instance()->get_registered(
			self::$block_to_render['blockName']
		);

		// If no render_callback, assume styles have been previously handled.
		if ( ! $block_type || empty( $block_type ) ) {
			return array();
		}

		$output = array();
		foreach ( $this->block_supports as $block_support_config ) {
			if ( ! isset( $block_support_config['apply'] ) ) {
				continue;
			}

			$new_attributes = call_user_func(
				$block_support_config['apply'],
				$block_type,
				$block_attributes
			);

			if ( ! empty( $new_attributes ) ) {
				foreach ( $new_attributes as $attribute_name => $attribute_value ) {
					if ( empty( $output[ $attribute_name ] ) ) {
						$output[ $attribute_name ] = $attribute_value;
					} else {
						$output[ $attribute_name ] .= " $attribute_value";
					}
				}
			}
		}

		return $output;
	}