WP_HTML_Tag_Processor::get_attribute( string $name ): string|true|null

In this article

Returns the value of a requested attribute from a matched tag opener if that attribute exists.

Description

Example:

$p = new WP_HTML_Tag_Processor( '<div enabled class="test" data-test-id="14">Test</div>' );
$p->next_tag( array( 'class_name' => 'test' ) ) === true;
$p->get_attribute( 'data-test-id' ) === '14';
$p->get_attribute( 'enabled' ) === true;
$p->get_attribute( 'aria-label' ) === null;

$p->next_tag() === false;
$p->get_attribute( 'class' ) === null;

Parameters

$namestringrequired
Name of attribute whose value is requested.

Return

string|true|null Value of attribute or null if not available. Boolean attributes return true.

Source


/**
 * Checks whether a bookmark with the given name exists.
 *
 * @since 6.3.0
 *
 * @param string $bookmark_name Name to identify a bookmark that potentially exists.
 * @return bool Whether that bookmark exists.
 */
public function has_bookmark( $bookmark_name ): bool {
	return array_key_exists( $bookmark_name, $this->bookmarks );
}

/**
 * Move the internal cursor in the Tag Processor to a given bookmark's location.
 *
 * In order to prevent accidental infinite loops, there's a
 * maximum limit on the number of times seek() can be called.
 *
 * @since 6.2.0
 *
 * @param string $bookmark_name Jump to the place in the document identified by this bookmark name.
 * @return bool Whether the internal cursor was successfully moved to the bookmark's location.
 */
public function seek( $bookmark_name ): bool {
	if ( ! array_key_exists( $bookmark_name, $this->bookmarks ) ) {
		_doing_it_wrong(
			__METHOD__,
			__( 'Unknown bookmark name.' ),
			'6.2.0'
		);
		return false;
	}

	if ( ++$this->seek_count > static::MAX_SEEK_OPS ) {
		_doing_it_wrong(
			__METHOD__,
			__( 'Too many calls to seek() - this can lead to performance issues.' ),
			'6.2.0'
		);
		return false;
	}

	// Flush out any pending updates to the document.
	$this->get_updated_html();

	// Point this tag processor before the sought tag opener and consume it.
	$this->bytes_already_parsed = $this->bookmarks[ $bookmark_name ]->start;
	$this->parser_state         = self::STATE_READY;
	return $this->next_token();
}

/**

Changelog

VersionDescription
6.2.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.