Yoast\WP\SEO\Dashboard\Domain\Search_Rankings
Comparison_Search_Ranking_Data{}
Domain object that represents a Comparison Search Ranking record.
Хуков нет.
Использование
$Comparison_Search_Ranking_Data = new Comparison_Search_Ranking_Data(); // use class methods
Методы
- public add_current_traffic_data( Search_Ranking_Data $current_search_ranking_data )
- public add_previous_traffic_data( Search_Ranking_Data $previous_search_ranking_data )
- private parse_data( array $search_ranking_data )
- public to_array()
Код Comparison_Search_Ranking_Data{} Comparison Search Ranking Data{} Yoast 25.1
class Comparison_Search_Ranking_Data implements Data_Interface { /** * The current search ranking data. * * @var Search_Ranking_Data[] */ private $current_search_ranking_data = []; /** * The previous search ranking data. * * @var Search_Ranking_Data[] */ private $previous_search_ranking_data = []; /** * Sets the current search ranking data. * * @param Search_Ranking_Data $current_search_ranking_data The current search ranking data. * * @return void */ public function add_current_traffic_data( Search_Ranking_Data $current_search_ranking_data ): void { \array_push( $this->current_search_ranking_data, $current_search_ranking_data ); } /** * Sets the previous search ranking data. * * @param Search_Ranking_Data $previous_search_ranking_data The previous search ranking data. * * @return void */ public function add_previous_traffic_data( Search_Ranking_Data $previous_search_ranking_data ): void { \array_push( $this->previous_search_ranking_data, $previous_search_ranking_data ); } /** * The array representation of this domain object. * * @return array<array<string, int>> */ public function to_array(): array { return [ 'current' => $this->parse_data( $this->current_search_ranking_data ), 'previous' => $this->parse_data( $this->previous_search_ranking_data ), ]; } /** * Parses search ranking data into the expected format. * * @param Search_Ranking_Data[] $search_ranking_data The search ranking data to be parsed. * * @return array<string, int> The parsed data */ private function parse_data( array $search_ranking_data ): array { $parsed_data = [ 'total_clicks' => 0, 'total_impressions' => 0, ]; $weighted_postion = 0; foreach ( $search_ranking_data as $search_ranking ) { $parsed_data['total_clicks'] += $search_ranking->get_clicks(); $parsed_data['total_impressions'] += $search_ranking->get_impressions(); $weighted_postion += ( $search_ranking->get_position() * $search_ranking->get_impressions() ); } if ( $parsed_data['total_impressions'] !== 0 ) { $parsed_data['average_ctr'] = ( $parsed_data['total_clicks'] / $parsed_data['total_impressions'] ); $parsed_data['average_position'] = ( $weighted_postion / $parsed_data['total_impressions'] ); } return $parsed_data; } }