WP_Interactivity_API::data_wp_text_processor()privateWP 6.5.0

Processes the data-wp-text directive.

It updates the inner content of the current HTML element based on the evaluation of its associated reference.

Method of the class: WP_Interactivity_API{}

No Hooks.

Return

null. Nothing (null).

Usage

// private - for code of main (parent) class only
$result = $this->data_wp_text_processor( $p, $mode, $context_stack, $namespace_stack );
$p(WP_Interactivity_API_Directives_Processor) (required)
The directives processor instance.
$mode(string) (required)
Whether the processing is entering or exiting the tag.
$context_stack(array) (required)
The reference to the context stack.
$namespace_stack(array) (required)
The reference to the store namespace stack.

Changelog

Since 6.5.0 Introduced.

WP_Interactivity_API::data_wp_text_processor() code WP 6.5.4

private function data_wp_text_processor( WP_Interactivity_API_Directives_Processor $p, string $mode, array &$context_stack, array &$namespace_stack ) {
	if ( 'enter' === $mode ) {
		$attribute_value = $p->get_attribute( 'data-wp-text' );
		$result          = $this->evaluate( $attribute_value, end( $namespace_stack ), end( $context_stack ) );

		/*
		 * Follows the same logic as Preact in the client and only changes the
		 * content if the value is a string or a number. Otherwise, it removes the
		 * content.
		 */
		if ( is_string( $result ) || is_numeric( $result ) ) {
			$p->set_content_between_balanced_tags( esc_html( $result ) );
		} else {
			$p->set_content_between_balanced_tags( '' );
		}
	}
}