Yoast\WP\SEO\Dashboard\User_Interface\Time_Based_SEO_Metrics
Time_Based_SEO_Metrics_Route::get_time_based_seo_metrics
Gets the time based SEO metrics.
Метод класса: Time_Based_SEO_Metrics_Route{}
Хуков нет.
Возвращает
WP_REST_Response. The success or failure response.
Использование
$Time_Based_SEO_Metrics_Route = new Time_Based_SEO_Metrics_Route(); $Time_Based_SEO_Metrics_Route->get_time_based_seo_metrics( $request ): WP_REST_Response;
- $request(WP_REST_Request) (обязательный)
- The request object.
Код Time_Based_SEO_Metrics_Route::get_time_based_seo_metrics() Time Based SEO Metrics Route::get time based seo metrics Yoast 28.0
public function get_time_based_seo_metrics( WP_REST_Request $request ): WP_REST_Response {
try {
$widget_name = $request->get_param( 'options' )['widget'];
switch ( $widget_name ) {
case 'query':
$request_parameters = new Search_Console_Parameters();
$request_parameters = $this->set_date_range_parameters( $request_parameters );
$request_parameters->set_limit( $request->get_param( 'limit' ) );
$request_parameters->set_dimensions( [ 'query' ] );
$time_based_seo_metrics_container = $this->top_query_repository->get_data( $request_parameters );
break;
case 'page':
$request_parameters = new Search_Console_Parameters();
$request_parameters = $this->set_date_range_parameters( $request_parameters );
$request_parameters->set_limit( $request->get_param( 'limit' ) );
$request_parameters->set_dimensions( [ 'page' ] );
$time_based_seo_metrics_container = $this->top_page_repository->get_data( $request_parameters );
break;
case 'organicSessionsDaily':
$request_parameters = new Analytics_4_Parameters();
$request_parameters = $this->set_date_range_parameters( $request_parameters );
$request_parameters->set_dimensions( [ 'date' ] );
$request_parameters->set_metrics( [ 'sessions' ] );
$request_parameters->set_dimension_filters( [ 'sessionDefaultChannelGrouping' => [ 'Organic Search' ] ] );
$request_parameters->set_order_by( 'dimension', 'date' );
$time_based_seo_metrics_container = $this->organic_sessions_daily_repository->get_data( $request_parameters );
break;
case 'organicSessionsCompare':
$request_parameters = new Analytics_4_Parameters();
$request_parameters = $this->set_date_range_parameters( $request_parameters );
$request_parameters = $this->set_comparison_date_range_parameters( $request_parameters );
$request_parameters->set_metrics( [ 'sessions' ] );
$request_parameters->set_dimension_filters( [ 'sessionDefaultChannelGrouping' => [ 'Organic Search' ] ] );
$time_based_seo_metrics_container = $this->organic_sessions_compare_repository->get_data( $request_parameters );
break;
case 'searchRankingCompare':
$request_parameters = new Search_Console_Parameters();
$request_parameters = $this->set_date_range_parameters( $request_parameters );
$request_parameters = $this->set_comparison_date_range_parameters( $request_parameters );
$request_parameters->set_dimensions( [ 'date' ] );
$time_based_seo_metrics_container = $this->search_ranking_compare_repository->get_data( $request_parameters );
break;
default:
throw new Repository_Not_Found_Exception();
}
} catch ( Exception $exception ) {
return new WP_REST_Response(
[
'error' => $exception->getMessage(),
],
$exception->getCode(),
);
}
return new WP_REST_Response(
$time_based_seo_metrics_container->to_array(),
200,
);
}