WP_HTML_Tag_Processor::seek
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.
Method of the class: WP_HTML_Tag_Processor{}
No Hooks.
Returns
true|false. Whether the internal cursor was successfully moved to the bookmark's location.
Usage
$WP_HTML_Tag_Processor = new WP_HTML_Tag_Processor(); $WP_HTML_Tag_Processor->seek( $bookmark_name ): bool;
- $bookmark_name(string) (required)
- Jump to the place in the document identified by this bookmark name.
Changelog
| Since 6.2.0 | Introduced. |
WP_HTML_Tag_Processor::seek() WP HTML Tag Processor::seek code WP 6.9.1
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;
}
$existing_bookmark = $this->bookmarks[ $bookmark_name ];
if (
$this->token_starts_at === $existing_bookmark->start &&
$this->token_length === $existing_bookmark->length
) {
return true;
}
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();
}