PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 15.2.1
Jetpack – WP Security, Backup, Speed, & Growth v15.2.1
12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 14.4.2 14.5.1 14.6.1 14.7.1 14.8.1 14.9.2 15.0.3 15.1.2 15.2.1 15.3.2 15.4.1 15.5.1 15.6.1 15.7.2 15.8.1 15.9.2 16.0.2 16.1.3 16.2-a.5 16.2-a.3 16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / _inc / lib / core-api / wpcom-endpoints / class-wpcom-rest-api-v2-endpoint-top-posts.php
jetpack / _inc / lib / core-api / wpcom-endpoints Last commit date
business-hours.php 1 year ago class-wpcom-rest-api-v2-endpoint-admin-color.php 1 year ago class-wpcom-rest-api-v2-endpoint-admin-menu.php 11 months ago class-wpcom-rest-api-v2-endpoint-ai.php 1 year ago class-wpcom-rest-api-v2-endpoint-app-media.php 1 year ago class-wpcom-rest-api-v2-endpoint-block-editor-assets.php 10 months ago class-wpcom-rest-api-v2-endpoint-blog-stats.php 1 year ago class-wpcom-rest-api-v2-endpoint-email-preview.php 1 year ago class-wpcom-rest-api-v2-endpoint-external-media.php 1 year ago class-wpcom-rest-api-v2-endpoint-following.php 1 year ago class-wpcom-rest-api-v2-endpoint-goodreads.php 1 year ago class-wpcom-rest-api-v2-endpoint-google-docs.php 1 year ago class-wpcom-rest-api-v2-endpoint-instagram-gallery.php 1 year ago class-wpcom-rest-api-v2-endpoint-mailchimp.php 11 months ago class-wpcom-rest-api-v2-endpoint-newsletter-categories-list.php 1 year ago class-wpcom-rest-api-v2-endpoint-newsletter-categories-subscriptions-count.php 1 year ago class-wpcom-rest-api-v2-endpoint-podcast-player.php 1 year ago class-wpcom-rest-api-v2-endpoint-profile.php 1 year ago class-wpcom-rest-api-v2-endpoint-related-posts.php 1 year ago class-wpcom-rest-api-v2-endpoint-resolve-redirect.php 1 year ago class-wpcom-rest-api-v2-endpoint-search.php 1 year ago class-wpcom-rest-api-v2-endpoint-send-email-preview.php 1 year ago class-wpcom-rest-api-v2-endpoint-template-loader.php 1 year ago class-wpcom-rest-api-v2-endpoint-top-posts.php 1 year ago class-wpcom-rest-api-v2-endpoint-transient.php 1 year ago class-wpcom-rest-api-v3-endpoint-blogging-prompts.php 11 months ago class-wpcom-rest-api-v3-endpoint-jitm.php 1 year ago gutenberg-available-extensions.php 1 year ago hello.php 1 year ago memberships.php 1 year ago publicize-connection-test-results.php 1 year ago service-api-keys.php 1 year ago sites-posts-featured-media-url.php 1 year ago subscribers.php 1 year ago
class-wpcom-rest-api-v2-endpoint-top-posts.php
105 lines
1 <?php
2 /**
3 * Get post types and top posts.
4 *
5 * @package automattic/jetpack
6 */
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit( 0 );
10 }
11
12 /**
13 * Top Posts & Pages block endpoint.
14 */
15 class WPCOM_REST_API_V2_Endpoint_Top_Posts extends WP_REST_Controller {
16 /**
17 * Constructor.
18 */
19 public function __construct() {
20 add_action( 'rest_api_init', array( $this, 'register_routes' ) );
21
22 if ( ! class_exists( 'Jetpack_Top_Posts_Helper' ) ) {
23 require_once JETPACK__PLUGIN_DIR . '_inc/lib/class-jetpack-top-posts-helper.php';
24 }
25 }
26
27 /**
28 * Register endpoint routes.
29 */
30 public function register_routes() {
31 register_rest_route(
32 'wpcom/v2',
33 '/post-types',
34 array(
35 array(
36 'methods' => WP_REST_Server::READABLE,
37 'callback' => array( $this, 'get_post_types' ),
38 'permission_callback' => function () {
39 return current_user_can( 'edit_posts' );
40 },
41 ),
42 )
43 );
44
45 // Number of posts and selected post types are not needed in the Editor.
46 // This is to minimise requests when it can already be handled by the block.
47 register_rest_route(
48 'wpcom/v2',
49 '/top-posts',
50 array(
51 array(
52 'methods' => WP_REST_Server::READABLE,
53 'callback' => array( $this, 'get_top_posts' ),
54 'permission_callback' => function () {
55 return current_user_can( 'edit_posts' );
56 },
57 'args' => array(
58 'period' => array(
59 'description' => __( 'Timeframe for stats.', 'jetpack' ),
60 'type' => array( 'string', 'integer' ),
61 'required' => true,
62 'validate_callback' => function ( $param ) {
63 return is_numeric( $param ) || is_string( $param );
64 },
65 ),
66 ),
67 ),
68 )
69 );
70 }
71
72 /**
73 * Get the site's post types.
74 *
75 * @return array Site's post types.
76 */
77 public function get_post_types() {
78 $post_types = array_values( get_post_types( array( 'public' => true ) ) );
79 $post_types_array = array();
80
81 foreach ( $post_types as $type ) {
82 $post_types_array[] = array(
83 'label' => get_post_type_object( $type )->labels->name,
84 'id' => $type,
85 );
86 }
87
88 return $post_types_array;
89 }
90
91 /**
92 * Get the site's top content.
93 *
94 * @param \WP_REST_Request $request request object.
95 *
96 * @return array Data on top posts.
97 */
98 public function get_top_posts( $request ) {
99 $period = $request->get_param( 'period' );
100 return Jetpack_Top_Posts_Helper::get_top_posts( $period );
101 }
102 }
103
104 wpcom_rest_api_v2_load_plugin( 'WPCOM_REST_API_V2_Endpoint_Top_Posts' );
105