WP_Interactivity_API::data_wp_class_processorprivateWP 6.5.0

Processes the data-wp-class directive.

It adds or removes CSS classes in the current HTML element based on the evaluation of its associated references.

Метод класса: WP_Interactivity_API{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

// private - только в коде основоного (родительского) класса
$result = $this->data_wp_class_processor( $p, $mode );
$p(WP_Interactivity_API_Directives_Processor) (обязательный)
The directives processor instance.
$mode(строка) (обязательный)
Whether the processing is entering or exiting the tag.

Список изменений

С версии 6.5.0 Введена.

Код WP_Interactivity_API::data_wp_class_processor() WP 6.9

private function data_wp_class_processor( WP_Interactivity_API_Directives_Processor $p, string $mode ) {
	if ( 'enter' === $mode ) {
		$all_class_directives = $p->get_attribute_names_with_prefix( 'data-wp-class--' );
		$entries              = $this->get_directive_entries( $p, 'class' );
		foreach ( $entries as $entry ) {
			if ( empty( $entry['suffix'] ) ) {
				continue;
			}
			$class_name = isset( $entry['unique_id'] ) && $entry['unique_id']
				? "{$entry['suffix']}---{$entry['unique_id']}"
				: $entry['suffix'];

			if ( empty( $class_name ) ) {
				return;
			}

			$result = $this->evaluate( $entry );

			if ( $result ) {
				$p->add_class( $class_name );
			} else {
				$p->remove_class( $class_name );
			}
		}
	}
}