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 / ThemesEndpoint.php
ThemesEndpoint.php
67 lines 1.7 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 use WordPressPopularPosts\Themer;
5 use WordPressPopularPosts\Translate;
6
7 class ThemesEndpoint extends Endpoint {
8
9 /**
10 * Themer object.
11 *
12 * @var \WordPressPopularPosts\Themer $themer
13 * @access private
14 */
15 private $themer;
16
17 /**
18 * Initializes class.
19 *
20 * @param array
21 * @param \WordPressPopularPosts\Translate
22 * @param \WordPressPopularPosts\Themer
23 */
24 public function __construct(array $config, Translate $translate, Themer $themer)
25 {
26 $this->config = $config;
27 $this->translate = $translate;
28 $this->themer = $themer;
29 }
30
31 /**
32 * Registers the endpoint(s).
33 *
34 * @since 5.4.0
35 */
36 public function register()
37 {
38 $version = '1';
39 $namespace = 'wordpress-popular-posts/v' . $version;
40
41 register_rest_route($namespace, '/themes', [
42 [
43 'methods' => \WP_REST_Server::READABLE,
44 'callback' => [$this, 'get_items'],
45 'permission_callback' => function() {
46 return current_user_can('edit_posts');
47 }
48 ]
49 ]);
50 }
51
52 /**
53 * Gets popular posts.
54 *
55 * @since 5.4.0
56 * @param \WP_REST_Request $request Full data about the request.
57 * @return \WP_REST_Response
58 */
59 public function get_items($request)
60 {
61 $registered_themes = $this->themer->get_themes();
62 ksort($registered_themes);
63
64 return new \WP_REST_Response($registered_themes, 200);
65 }
66 }
67