PluginProbe
WP Popular Posts / 7.4.2
WP Popular Posts v7.4.2
7.4.2 7.4.1 4.0.8 4.0.9 4.1.0 4.1.1 4.1.2 4.2.0 4.2.1 4.2.2 5.0.0 5.0.1 5.0.2 5.1.0 5.2.0 5.2.1 5.2.2 5.2.3 5.2.4 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 All 93 releases
wordpress-popular-posts / src / Rest / ThumbnailsEndpoint.php
ThumbnailsEndpoint.php
59 lines 1.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace WordPressPopularPosts\Rest;
3
4 class ThumbnailsEndpoint extends Endpoint {
5
6 /**
7 * Registers the endpoint(s).
8 *
9 * @since 5.4.0
10 */
11 public function register()
12 {
13 $version = '1';
14 $namespace = 'wordpress-popular-posts/v' . $version;
15
16 register_rest_route($namespace, '/thumbnails', [
17 [
18 'methods' => \WP_REST_Server::READABLE,
19 'callback' => [$this, 'get_items'],
20 'permission_callback' => function() {
21 return current_user_can('edit_posts');
22 }
23 ]
24 ]);
25 }
26
27 /**
28 * Gets popular posts.
29 *
30 * @since 5.4.0
31 * @param \WP_REST_Request $request Full data about the request.
32 * @return \WP_REST_Response
33 */
34 public function get_items($request)
35 {
36 global $_wp_additional_image_sizes;
37
38 $available_sizes = [];
39 $get_intermediate_image_sizes = get_intermediate_image_sizes();
40
41 // Create the full array with sizes and crop info
42 foreach( $get_intermediate_image_sizes as $_size ) {
43 if ( in_array($_size, ['thumbnail', 'medium', 'large']) ) {
44 $available_sizes[$_size]['width'] = get_option($_size . '_size_w');
45 $available_sizes[$_size]['height'] = get_option($_size . '_size_h');
46 $available_sizes[$_size]['crop'] = (bool) get_option($_size . '_crop');
47 } elseif ( isset($_wp_additional_image_sizes[$_size]) ) {
48 $available_sizes[$_size] = [
49 'width' => $_wp_additional_image_sizes[$_size]['width'],
50 'height' => $_wp_additional_image_sizes[$_size]['height'],
51 'crop' => $_wp_additional_image_sizes[$_size]['crop']
52 ];
53 }
54 }
55
56 return new \WP_REST_Response($available_sizes, 200);
57 }
58 }
59