ublic_post_types = $this->get_public_post_types(); $excluded_post_types = $this->get_excluded_post_types_for_indexables(); $included_post_types = \array_diff( $public_post_types, $excluded_post_types ); return $this->filter_included_post_types( $included_post_types ); } /** * Returns all indexable post types with archive pages. * * @return array All post types which are indexable and have archive pages. */ public function get_indexable_post_archives() { return \array_filter( $this->get_indexable_post_type_objects(), [ $this, 'has_archive' ] ); } /** * Filters the post types that are included to be indexed. * * @param array $included_post_types The post types that are included to be indexed. * * @return array The filtered post types that are included to be indexed. */ protected function filter_included_post_types( $included_post_types ) { /** * Filter: 'wpseo_indexable_forced_included_post_types' - Allows force including posts of a certain post * type to be saved to the indexable table. * * @param array $included_post_types The currently included post types that indexables will be created for. */ $filtered_included_post_types = \apply_filters( 'wpseo_indexable_forced_included_post_types', $included_post_types ); if ( ! \is_array( $filtered_included_post_types ) ) { // If the filter got misused, let's return the unfiltered array. return \array_values( $included_post_types ); } // Add sanity check to make sure everything is an actual post type. foreach ( $filtered_included_post_types as $key => $post_type ) { if ( ! \post_type_exists( $post_type ) ) { unset( $filtered_included_post_types[ $key ] ); } } // `array_values`, to make sure that the keys are reset. return \array_values( $filtered_included_post_types ); } /** * Checks if the given post type should be indexed. * * @param string $post_type The post type that is checked. * * @return bool */ public function is_of_indexable_post_type( $post_type ) { $public_types = $this->get_indexable_post_types(); if ( ! \in_array( $post_type, $public_types, true ) ) { return false; } return true; } /** * Checks if the archive of a post type is indexable. * * @param string $post_type The post type to check. * * @return bool if the archive is indexable. */ public function is_post_type_archive_indexable( $post_type ) { $public_type_objects = $this->get_indexable_post_archives(); $public_types = \array_map( static function ( $post_type_object ) { return $post_type_object->name; }, $public_type_objects ); return \in_array( $post_type, $public_types, true ); } /** * Returns an array of complete post type objects for all indexable post types. * * @return array List of indexable post type objects. */ public function get_indexable_post_type_objects() { $post_type_objects = []; $indexable_post_types = $this->get_indexable_post_types(); foreach ( $indexable_post_types as $post_type ) { $post_type_object = \get_post_type_object( $post_type ); if ( ! empty( $post_type_object ) ) { $post_type_objects[ $post_type ] = $post_type_object; } } return $post_type_objects; } }
Fatal error: Uncaught Error: Class "Yoast\WP\SEO\Helpers\Post_Type_Helper" not found in /htdocs/wp-content/plugins/wordpress-seo/src/generated/container.php:3445 Stack trace: #0 /htdocs/wp-content/plugins/wordpress-seo/vendor_prefixed/symfony/dependency-injection/Container.php(212): Yoast\WP\SEO\Generated\Cached_Container->getPostTypeHelperService() #1 /htdocs/wp-content/plugins/wordpress-seo/vendor_prefixed/symfony/dependency-injection/Container.php(195): YoastSEO_Vendor\Symfony\Component\DependencyInjection\Container->make('Yoast\\WP\\SEO\\He...', 1) #2 /htdocs/wp-content/plugins/wordpress-seo/src/surfaces/helpers-surface.php(108): YoastSEO_Vendor\Symfony\Component\DependencyInjection\Container->get('Yoast\\WP\\SEO\\He...') #3 /htdocs/wp-content/plugins/wordpress-seo/inc/class-post-type.php(90): Yoast\WP\SEO\Surfaces\Helpers_Surface->__get('post_type') #4 /htdocs/wp-content/plugins/wordpress-seo/inc/options/class-wpseo-option-titles.php(328): WPSEO_Post_Type::has_archive(Object(WP_Post_Type)) #5 /htdocs/wp-content/plugins/wordpress-seo/inc/options/class-wpseo-option.php(408): WPSEO_Option_Titles->enrich_defaults() #6 /htdocs/wp-content/plugins/wordpress-seo/inc/options/class-wpseo-option.php(726): WPSEO_Option->get_defaults() #7 /htdocs/wp-content/plugins/wordpress-seo/inc/options/class-wpseo-option.php(446): WPSEO_Option->array_filter_merge(Array) #8 /htdocs/wp-includes/class-wp-hook.php(343): WPSEO_Option->get_option(Array) #9 /htdocs/wp-includes/plugin.php(205): WP_Hook->apply_filters(Array, Array) #10 /htdocs/wp-includes/option.php(256): apply_filters('option_wpseo_ti...', Array, 'wpseo_titles') #11 /htdocs/wp-content/plugins/wordpress-seo/inc/options/class-wpseo-options.php(263): get_option('wpseo_titles') #12 /htdocs/wp-content/plugins/wordpress-seo/inc/options/class-wpseo-options.php(240): WPSEO_Options::get_option('wpseo_titles') #13 /htdocs/wp-content/plugins/wordpress-seo/inc/options/class-wpseo-options.php(223): WPSEO_Options::get_options(Array) #14 /htdocs/wp-content/plugins/wordpress-seo/inc/options/class-wpseo-options.php(311): WPSEO_Options::get_all(Array) #15 /htdocs/wp-content/plugins/wordpress-seo/inc/options/class-wpseo-options.php(285): WPSEO_Options::prime_cache(Array) #16 /htdocs/wp-content/plugins/wordpress-seo/src/helpers/options-helper.php(27): WPSEO_Options::get('enable_ai_gener...', NULL) #17 /htdocs/wp-content/plugins/wordpress-seo/src/conditionals/ai-conditional.php(34): Yoast\WP\SEO\Helpers\Options_Helper->get('enable_ai_gener...') #18 /htdocs/wp-content/plugins/wordpress-seo/src/loader.php(270): Yoast\WP\SEO\Conditionals\AI_Conditional->is_met() #19 /htdocs/wp-content/plugins/wordpress-seo/src/loader.php(208): Yoast\WP\SEO\Loader->conditionals_are_met('Yoast\\WP\\SEO\\AI...') #20 /htdocs/wp-includes/class-wp-hook.php(341): Yoast\WP\SEO\Loader->load_integrations('') #21 /htdocs/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters(NULL, Array) #22 /htdocs/wp-includes/plugin.php(522): WP_Hook->do_action(Array) #23 /htdocs/wp-settings.php(742): do_action('init') #24 /htdocs/wp-config.php(105): require_once('/htdocs/wp-sett...') #25 /htdocs/wp-load.php(50): require_once('/htdocs/wp-conf...') #26 /htdocs/wp-blog-header.php(13): require_once('/htdocs/wp-load...') #27 /htdocs/index.php(41): require('/htdocs/wp-blog...') #28 {main} thrown in /htdocs/wp-content/plugins/wordpress-seo/src/generated/container.php on line 3445