this->bookmarks[ $opener_tag ]->start + $this->bookmarks[ $opener_tag ]->length; $before_closer_tag = $this->bookmarks[ $closer_tag ]->start; if ( $rewind ) { $this->seek( $opener_tag ); } $this->release_bookmark( $opener_tag ); $this->release_bookmark( $closer_tag ); return array( $after_opener_tag, $before_closer_tag ); } /** * Returns a pair of bookmarks for the current opener tag and the matching * closer tag. * * It positions the cursor in the closer tag of the balanced tag, if it * exists. * * @since 6.5.0 * * @return array|null A pair of bookmarks, or null if there's no matching closing tag. */ private function get_balanced_tag_bookmarks() { static $i = 0; $opener_tag = 'opener_tag_of_balanced_tag_' . ++$i; $this->set_bookmark( $opener_tag ); if ( ! $this->next_balanced_tag_closer_tag() ) { $this->release_bookmark( $opener_tag ); return null; } $closer_tag = 'closer_tag_of_balanced_tag_' . ++$i; $this->set_bookmark( $closer_tag ); return array( $opener_tag, $closer_tag ); } /** * Skips processing the content between tags. * * It positions the cursor in the closer tag of the foreign element, if it * exists. * * This function is intended to skip processing SVG and MathML inner content * instead of bailing out the whole processing. * * @since 6.5.0 * * @access private * * @return bool Whether the foreign content was successfully skipped. */ public function skip_to_tag_closer(): bool { $depth = 1; $tag_name = $this->get_tag(); while ( $depth > 0 && $this->next_tag( array( 'tag_closers' => 'visit' ) ) ) { if ( ! $this->is_tag_closer() && $this->get_attribute_names_with_prefix( 'data-wp-' ) ) { /* translators: 1: SVG or MATH HTML tag. */ $message = sprintf( __( 'Interactivity directives were detected inside an incompatible %1$s tag. These directives will be ignored in the server side render.' ), $tag_name ); _doing_it_wrong( __METHOD__, $message, '6.6.0' ); } if ( $this->get_tag() === $tag_name ) { if ( $this->has_self_closing_flag() ) { continue; } $depth += $this->is_tag_closer() ? -1 : 1; } } return 0 === $depth; } /** * Finds the matching closing tag for an opening tag. * * When called while the processor is on an open tag, it traverses the HTML * until it finds the matching closer tag, respecting any in-between content, * including nested tags of the same name. Returns false when called on a * closer tag, a tag that doesn't have a closer tag (void), a tag that * doesn't visit the closer tag, or if no matching closing tag was found. * * @since 6.5.0 * * @access private * * @return bool Whether a matching closing tag was found. */ public function next_balanced_tag_closer_tag(): bool { $depth = 0; $tag_name = $this->get_tag(); if ( ! $this->has_and_visits_its_closer_tag() ) { return false; } while ( $this->next_tag( array( 'tag_name' => $tag_name, 'tag_closers' => 'visit', ) ) ) { if ( ! $this->is_tag_closer() ) { ++$depth; continue; } if ( 0 === $depth ) { return true; } --$depth; } return false; } /** * Checks whether the current tag has and will visit its matching closer tag. * * @since 6.5.0 * * @access private * * @return bool Whether the current tag has a closer tag. */ public function has_and_visits_its_closer_tag(): bool { $tag_name = $this->get_tag(); return null !== $tag_name && ( ! WP_HTML_Processor::is_void( $tag_name ) && ! in_array( $tag_name, self::TAGS_THAT_DONT_VISIT_CLOSER_TAG, true ) ); } } eo_new !== false ) { $new_row = \sprintf( '%1$s%2$s%3$s', \__( 'Required Yoast SEO version', 'wordpress-seo' ), ( $requires_yoast_seo_current !== false ) ? \esc_html( $requires_yoast_seo_current ) : '-', ( $requires_yoast_seo_new !== false ) ? \esc_html( $requires_yoast_seo_new ) : '-' ); $table = \str_replace( '', $new_row . '', $table ); } return $table; } /** * Check whether the required Yoast SEO version is installed. * * @param string|bool $required_version The required version. * * @return bool Whether the required version is installed, or no version is required. */ private function check_requirement( $required_version ) { if ( $required_version === false ) { return true; } return \version_compare( \WPSEO_VERSION, $required_version . '-RC0', '>=' ); } } he post to delete the terms of. * * @return void */ public function delete_primary_terms( $post_id ) { foreach ( $this->primary_term->get_primary_term_taxonomies( $post_id ) as $taxonomy ) { $primary_term_indexable = $this->repository->find_by_post_id_and_taxonomy( $post_id, $taxonomy->name, false ); if ( ! $primary_term_indexable ) { continue; } $primary_term_indexable->delete(); } } }
Fatal error: Uncaught Error: Class "Yoast\WP\SEO\Helpers\String_Helper" not found in /htdocs/wp-content/plugins/wordpress-seo/src/generated/container.php:3431 Stack trace: #0 /htdocs/wp-content/plugins/wordpress-seo/src/generated/container.php(1514): Yoast\WP\SEO\Generated\Cached_Container->getPostHelperService() #1 /htdocs/wp-content/plugins/wordpress-seo/src/generated/container.php(1534): Yoast\WP\SEO\Generated\Cached_Container->getIndexableAuthorBuilderService() #2 /htdocs/wp-content/plugins/wordpress-seo/src/generated/container.php(5513): Yoast\WP\SEO\Generated\Cached_Container->getIndexableBuilderService() #3 /htdocs/wp-content/plugins/wordpress-seo/vendor_prefixed/symfony/dependency-injection/Container.php(212): Yoast\WP\SEO\Generated\Cached_Container->getIndexableRepositoryService() #4 /htdocs/wp-content/plugins/wordpress-seo/vendor_prefixed/symfony/dependency-injection/Container.php(195): YoastSEO_Vendor\Symfony\Component\DependencyInjection\Container->make('Yoast\\WP\\SEO\\Re...', 1) #5 /htdocs/wp-content/plugins/wordpress-seo/src/surfaces/classes-surface.php(38): YoastSEO_Vendor\Symfony\Component\DependencyInjection\Container->get('Yoast\\WP\\SEO\\Re...') #6 /htdocs/wp-content/plugins/wordpress-seo/inc/class-wpseo-admin-bar-menu.php(134): Yoast\WP\SEO\Surfaces\Classes_Surface->get('Yoast\\WP\\SEO\\Re...') #7 /htdocs/wp-content/plugins/wordpress-seo/inc/wpseo-non-ajax-functions.php(20): WPSEO_Admin_Bar_Menu->__construct() #8 /htdocs/wp-includes/class-wp-hook.php(341): wpseo_initialize_admin_bar('') #9 /htdocs/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters(NULL, Array) #10 /htdocs/wp-includes/plugin.php(522): WP_Hook->do_action(Array) #11 /htdocs/wp-settings.php(764): do_action('wp_loaded') #12 /htdocs/wp-config.php(105): require_once('/htdocs/wp-sett...') #13 /htdocs/wp-load.php(50): require_once('/htdocs/wp-conf...') #14 /htdocs/wp-blog-header.php(13): require_once('/htdocs/wp-load...') #15 /htdocs/index.php(41): require('/htdocs/wp-blog...') #16 {main} thrown in /htdocs/wp-content/plugins/wordpress-seo/src/generated/container.php on line 3431