WP_HTML_Tag_Processor::seek( string $bookmark_name ): bool

Move the internal cursor in the Tag Processor to a given bookmark’s location.

Description

In order to prevent accidental infinite loops, there’s a maximum limit on the number of times seek() can be called.

Parameters

$bookmark_namestringrequired
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.

Source

public function seek( $bookmark_name ) {
	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.