Yoast\WP\SEO\Dashboard\Infrastructure\Score_Results\SEO_Score_Results
Cached_SEO_Score_Results_Collector{}
The caching decorator to get readability score results.
Хуков нет.
Использование
$Cached_SEO_Score_Results_Collector = new Cached_SEO_Score_Results_Collector(); // use class methods
Методы
- public __construct( SEO_Score_Results_Collector $seo_score_results_collector )
- public get_score_results(
Код Cached_SEO_Score_Results_Collector{} Cached SEO Score Results Collector{} Yoast 24.4
class Cached_SEO_Score_Results_Collector implements Score_Results_Collector_Interface { public const SEO_SCORES_TRANSIENT = 'wpseo_seo_scores'; /** * The actual collector implementation. * * @var SEO_Score_Results_Collector $seo_score_results_collector */ private $seo_score_results_collector; /** * The constructor. * * @param SEO_Score_Results_Collector $seo_score_results_collector The collector implementation to use. */ public function __construct( SEO_Score_Results_Collector $seo_score_results_collector ) { $this->seo_score_results_collector = $seo_score_results_collector; } /** * Retrieves the SEO score results for a content type. * Based on caching returns either the result or gets it from the collector. * * @param SEO_Score_Groups_Interface[] $score_groups All SEO score groups. * @param Content_Type $content_type The content type. * @param int|null $term_id The ID of the term we're filtering for. * @param bool|null $is_troubleshooting Whether we're in troubleshooting mode. * * @throws Score_Results_Not_Found_Exception When the query of getting score results fails. * @return array<string, object|bool|float> The SEO score results for a content type. */ public function get_score_results( array $score_groups, Content_Type $content_type, ?int $term_id, ?bool $is_troubleshooting ) { $content_type_name = $content_type->get_name(); $transient_name = self::SEO_SCORES_TRANSIENT . '_' . $content_type_name . ( ( $term_id === null ) ? '' : '_' . $term_id ); $results = []; $transient = \get_transient( $transient_name ); if ( $is_troubleshooting !== true && $transient !== false ) { $results['scores'] = \json_decode( $transient, false ); $results['cache_used'] = true; $results['query_time'] = 0; return $results; } $results = $this->seo_score_results_collector->get_score_results( $score_groups, $content_type, $term_id, $is_troubleshooting ); $results['cache_used'] = false; if ( $is_troubleshooting !== true ) { \set_transient( $transient_name, WPSEO_Utils::format_json_encode( $results['scores'] ), \MINUTE_IN_SECONDS ); } return $results; } }