WP_HTML_Tag_Processor::remove_class()publicWP 6.2.0

Removes a class name from the currently matched tag.

Method of the class: WP_HTML_Tag_Processor{}

No Hooks.

Returns

true|false. Whether the class was set to be removed.

Usage

$WP_HTML_Tag_Processor = new WP_HTML_Tag_Processor();
$WP_HTML_Tag_Processor->remove_class( $class_name ): bool;
$class_name(string) (required)
The class name to remove.

Changelog

Since 6.2.0 Introduced.

WP_HTML_Tag_Processor::remove_class() code WP 6.8.1

public function remove_class( $class_name ): bool {
	if (
		self::STATE_MATCHED_TAG !== $this->parser_state ||
		$this->is_closing_tag
	) {
		return false;
	}

	if ( self::QUIRKS_MODE !== $this->compat_mode ) {
		$this->classname_updates[ $class_name ] = self::REMOVE_CLASS;
		return true;
	}

	/*
	 * Because class names are matched ASCII-case-insensitively in quirks mode,
	 * this needs to see if a case variant of the given class name is already
	 * enqueued and update that existing entry, if so. This picks the casing of
	 * the first-provided class name for all lexical variations.
	 */
	$class_name_length = strlen( $class_name );
	foreach ( $this->classname_updates as $updated_name => $action ) {
		if (
			strlen( $updated_name ) === $class_name_length &&
			0 === substr_compare( $updated_name, $class_name, 0, $class_name_length, true )
		) {
			$this->classname_updates[ $updated_name ] = self::REMOVE_CLASS;
			return true;
		}
	}

	$this->classname_updates[ $class_name ] = self::REMOVE_CLASS;
	return true;
}