| Server IP : 62.171.151.215 / Your IP : 216.73.217.53 Web Server : nginx/1.18.0 System : Linux vmi3128365 5.15.0-176-generic #186-Ubuntu SMP Fri Mar 13 11:01:42 UTC 2026 x86_64 User : alex ( 1000) PHP Version : 8.4.18 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /tmp/plugin-wordpress-seo/wordpress-seo/src/schema-aggregator/infrastructure/ |
Upload File : |
<?php
// phpcs:disable Yoast.NamingConventions.NamespaceName.TooLong -- Needed in the folder structure.
namespace Yoast\WP\SEO\Schema_Aggregator\Infrastructure;
use Yoast\WP\SEO\Conditionals\WooCommerce_Conditional;
use Yoast\WP\SEO\Helpers\Post_Type_Helper;
/**
* Configuration for the Schema Aggregator.
*/
class Aggregator_Config {
/**
* Default schema types to include (whitelist)
*
* @var array<string>
*/
private const DEFAULT_SCHEMA_TYPES = [
'Recipe',
'Article',
'Product',
'ProductGroup',
'Event',
'Person',
'Organization',
'WebSite',
];
/**
* The WooCommerce Conditional.
*
* @var WooCommerce_Conditional
*/
private $woocommerce_conditional;
/**
* The Post Type Helper.
*
* @var Post_Type_Helper
*/
private $post_type_helper;
/**
* Aggregator_Config constructor.
*
* @param WooCommerce_Conditional $woocommerce_conditional The WooCommerce Conditional.
* @param Post_Type_Helper $post_type_helper The Post Type Helper.
*/
public function __construct( WooCommerce_Conditional $woocommerce_conditional, Post_Type_Helper $post_type_helper ) {
$this->woocommerce_conditional = $woocommerce_conditional;
$this->post_type_helper = $post_type_helper;
}
/**
* Get configured post types
*
* @return array<string>
*/
public function get_allowed_post_types(): array {
$default_post_types = $this->post_type_helper->get_indexable_post_types();
foreach ( $default_post_types as $key => $post_type ) {
if ( ! $this->post_type_helper->is_indexable( $post_type ) ) {
unset( $default_post_types[ $key ] );
}
}
// Reindex the array to avoid gaps.
$default_post_types = \array_values( $default_post_types );
$post_types = \apply_filters( 'wpseo_schema_aggregator_post_types', $default_post_types );
if ( ! \is_array( $post_types ) ) {
return $default_post_types;
}
return $post_types;
}
}