Yoast\WP\SEO\Schema_Aggregator\Application\Filtering\Schema_Node_Filter
WebSite_Schema_Node_Filter{}└─ Schema_Node_Filter_Decider_Interface
WebSite schema node filter implementation.
The class name uses WebSite instead of Website because we need it to reflect the schema piece name. By doing so we can search for a piece-specific node filter in Default_Filter.
Хуков нет.
Использование
$WebSite_Schema_Node_Filter = new WebSite_Schema_Node_Filter(); // use class methods
Методы
- public __construct()
- public should_filter( Schema_Piece_Collection $schema, Schema_Piece $schema_piece )
Код WebSite_Schema_Node_Filter{} WebSite Schema Node Filter{} Yoast 27.7
class WebSite_Schema_Node_Filter implements Schema_Node_Filter_Decider_Interface {
/**
* The site info provider.
*
* @var Current_Site_URL_Provider_Interface
*/
private $current_site_url_provider;
/**
* Class constructor.
*/
public function __construct() {
$this->current_site_url_provider = new WordPress_Current_Site_URL_Provider();
}
/**
* Filters a WebSite schema piece if it matches the site's URL.
*
* @param Schema_Piece_Collection $schema The full schema.
* @param Schema_Piece $schema_piece The schema piece to be filtered.
*
* @return bool True if the schema piece should be kept, false otherwise.
*/
public function should_filter( Schema_Piece_Collection $schema, Schema_Piece $schema_piece ): bool {
$blog_url = $this->current_site_url_provider->get_current_site_url();
$data = $schema_piece->get_data();
if ( $data['url'] === $blog_url ) {
return false;
}
return true;
}
}