From f90c8bf1ae620b7568851f6d6e155223a8a6bf73 Mon Sep 17 00:00:00 2001 From: Dennis Snell Date: Sat, 6 Jul 2024 10:18:03 +0000 Subject: [PATCH] HTML API: Respect `tag_name` query arg in `HTML_Processor::next_tag()` Previously the HTML Processor was ignoring the `tag_name` argument in the `next_tag()` query if it existed. This was wrong adn would lead to calling code finding the very next tag, regardless of tag name, instead of the requested taag. This patch adds the tag name detection code into `next_tag()` to fix the bug and ensure that `next_tag()` always returns only when finding a tag of the given name. Developed in https://github.com/WordPress/wordpress-develop/pull/6980 Discussed in https://core.trac.wordpress.org/ticket/61581 Follow-up to [56274]. Fixes #61581. git-svn-id: https://develop.svn.wordpress.org/trunk@58681 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/html-api/class-wp-html-processor.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/wp-includes/html-api/class-wp-html-processor.php b/src/wp-includes/html-api/class-wp-html-processor.php index cbf1dc6336..588d2fbe7d 100644 --- a/src/wp-includes/html-api/class-wp-html-processor.php +++ b/src/wp-includes/html-api/class-wp-html-processor.php @@ -466,6 +466,10 @@ class WP_HTML_Processor extends WP_HTML_Tag_Processor { continue; } + if ( isset( $query['tag_name'] ) && $query['tag_name'] !== $this->get_token_name() ) { + continue; + } + if ( isset( $needs_class ) && ! $this->has_class( $needs_class ) ) { continue; }