PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.0-beta
Jetpack – WP Security, Backup, Speed, & Growth v16.0-beta
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 / json-endpoints / class.wpcom-json-api-get-taxonomies-endpoint.php
jetpack / json-endpoints Last commit date
jetpack 2 weeks ago class.wpcom-json-api-add-widget-endpoint.php 7 months ago class.wpcom-json-api-autosave-post-v1-1-endpoint.php 7 months ago class.wpcom-json-api-bulk-delete-post-endpoint.php 7 months ago class.wpcom-json-api-bulk-restore-post-endpoint.php 7 months ago class.wpcom-json-api-bulk-update-comments-endpoint.php 1 month ago class.wpcom-json-api-comment-endpoint.php 7 months ago class.wpcom-json-api-delete-media-endpoint.php 7 months ago class.wpcom-json-api-delete-media-v1-1-endpoint.php 7 months ago class.wpcom-json-api-edit-media-v1-2-endpoint.php 1 month ago class.wpcom-json-api-get-autosave-v1-1-endpoint.php 7 months ago class.wpcom-json-api-get-comment-counts-endpoint.php 7 months ago class.wpcom-json-api-get-comment-endpoint.php 7 months ago class.wpcom-json-api-get-comment-history-endpoint.php 7 months ago class.wpcom-json-api-get-comments-tree-endpoint.php 7 months ago class.wpcom-json-api-get-comments-tree-v1-1-endpoint.php 7 months ago class.wpcom-json-api-get-comments-tree-v1-2-endpoint.php 7 months ago class.wpcom-json-api-get-customcss.php 7 months ago class.wpcom-json-api-get-media-endpoint.php 7 months ago class.wpcom-json-api-get-media-v1-1-endpoint.php 7 months ago class.wpcom-json-api-get-media-v1-2-endpoint.php 7 months ago class.wpcom-json-api-get-post-counts-v1-1-endpoint.php 2 weeks ago class.wpcom-json-api-get-post-endpoint.php 7 months ago class.wpcom-json-api-get-post-v1-1-endpoint.php 7 months ago class.wpcom-json-api-get-site-endpoint.php 2 weeks ago class.wpcom-json-api-get-site-v1-2-endpoint.php 2 weeks ago class.wpcom-json-api-get-taxonomies-endpoint.php 2 months ago class.wpcom-json-api-get-taxonomy-endpoint.php 7 months ago class.wpcom-json-api-get-term-endpoint.php 7 months ago class.wpcom-json-api-list-comments-endpoint.php 2 weeks ago class.wpcom-json-api-list-dropdown-pages-endpoint.php 7 months ago class.wpcom-json-api-list-embeds-endpoint.php 7 months ago class.wpcom-json-api-list-media-endpoint.php 7 months ago class.wpcom-json-api-list-media-v1-1-endpoint.php 1 month ago class.wpcom-json-api-list-media-v1-2-endpoint.php 7 months ago class.wpcom-json-api-list-post-type-taxonomies-endpoint.php 7 months ago class.wpcom-json-api-list-post-types-endpoint.php 7 months ago class.wpcom-json-api-list-posts-endpoint.php 2 weeks ago class.wpcom-json-api-list-posts-v1-1-endpoint.php 2 weeks ago class.wpcom-json-api-list-posts-v1-2-endpoint.php 2 weeks ago class.wpcom-json-api-list-roles-endpoint.php 7 months ago class.wpcom-json-api-list-shortcodes-endpoint.php 7 months ago class.wpcom-json-api-list-terms-endpoint.php 7 months ago class.wpcom-json-api-list-users-endpoint.php 2 weeks ago class.wpcom-json-api-menus-v1-1-endpoint.php 1 month ago class.wpcom-json-api-post-endpoint.php 7 months ago class.wpcom-json-api-post-v1-1-endpoint.php 2 months ago class.wpcom-json-api-render-embed-endpoint.php 7 months ago class.wpcom-json-api-render-embed-reversal-endpoint.php 7 months ago class.wpcom-json-api-render-endpoint.php 1 month ago class.wpcom-json-api-render-shortcode-endpoint.php 7 months ago class.wpcom-json-api-sharing-buttons-endpoint.php 1 month ago class.wpcom-json-api-site-settings-endpoint.php 2 weeks ago class.wpcom-json-api-site-settings-v1-2-endpoint.php 7 months ago class.wpcom-json-api-site-settings-v1-3-endpoint.php 7 months ago class.wpcom-json-api-site-settings-v1-4-endpoint.php 2 weeks ago class.wpcom-json-api-site-user-endpoint.php 7 months ago class.wpcom-json-api-taxonomy-endpoint.php 7 months ago class.wpcom-json-api-update-comment-endpoint.php 6 months ago class.wpcom-json-api-update-customcss.php 7 months ago class.wpcom-json-api-update-media-endpoint.php 7 months ago class.wpcom-json-api-update-media-v1-1-endpoint.php 1 month ago class.wpcom-json-api-update-post-endpoint.php 1 month ago class.wpcom-json-api-update-post-v1-1-endpoint.php 1 month ago class.wpcom-json-api-update-post-v1-2-endpoint.php 1 month ago class.wpcom-json-api-update-site-homepage-endpoint.php 7 months ago class.wpcom-json-api-update-site-logo-endpoint.php 7 months ago class.wpcom-json-api-update-taxonomy-endpoint.php 6 months ago class.wpcom-json-api-update-term-endpoint.php 7 months ago class.wpcom-json-api-update-user-endpoint.php 7 months ago class.wpcom-json-api-upload-media-endpoint.php 7 months ago class.wpcom-json-api-upload-media-v1-1-endpoint.php 7 months ago
class.wpcom-json-api-get-taxonomies-endpoint.php
191 lines
1 <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2
3 if ( ! defined( 'ABSPATH' ) ) {
4 exit( 0 );
5 }
6
7 new WPCOM_JSON_API_Get_Taxonomies_Endpoint(
8 array(
9 'description' => "Get a list of a site's categories.",
10 'group' => 'taxonomy',
11 'stat' => 'categories',
12 'method' => 'GET',
13 'path' => '/sites/%s/categories',
14 'path_labels' => array(
15 '$site' => '(int|string) Site ID or domain',
16 ),
17 'query_parameters' => array(
18 'number' => '(int=100) The number of categories to return. Limit: 1000.',
19 'offset' => '(int=0) 0-indexed offset.',
20 'page' => '(int) Return the Nth 1-indexed page of categories. Takes precedence over the <code>offset</code> parameter.',
21 'search' => '(string) Limit response to include only categories whose names or slugs match the provided search query.',
22 'order' => array(
23 'ASC' => 'Return categories in ascending order.',
24 'DESC' => 'Return categories in descending order.',
25 ),
26 'order_by' => array(
27 'name' => 'Order by the name of each category.',
28 'count' => 'Order by the number of posts in each category.',
29 ),
30 ),
31 'response_format' => array(
32 'found' => '(int) The number of categories returned.',
33 'categories' => '(array) Array of category objects.',
34 ),
35
36 'allow_fallback_to_jetpack_blog_token' => true,
37
38 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/categories/?number=5',
39 )
40 );
41
42 new WPCOM_JSON_API_Get_Taxonomies_Endpoint(
43 array(
44 'description' => "Get a list of a site's tags.",
45 'group' => 'taxonomy',
46 'stat' => 'tags',
47 'method' => 'GET',
48 'path' => '/sites/%s/tags',
49 'path_labels' => array(
50 '$site' => '(int|string) Site ID or domain',
51 ),
52 'query_parameters' => array(
53 'number' => '(int=100) The number of tags to return. Limit: 1000.',
54 'offset' => '(int=0) 0-indexed offset.',
55 'page' => '(int) Return the Nth 1-indexed page of tags. Takes precedence over the <code>offset</code> parameter.',
56 'search' => '(string) Limit response to include only tags whose names or slugs match the provided search query.',
57 'order' => array(
58 'ASC' => 'Return tags in ascending order.',
59 'DESC' => 'Return tags in descending order.',
60 ),
61 'order_by' => array(
62 'name' => 'Order by the name of each tag.',
63 'count' => 'Order by the number of posts in each tag.',
64 ),
65 ),
66
67 'allow_fallback_to_jetpack_blog_token' => true,
68
69 'response_format' => array(
70 'found' => '(int) The number of tags returned.',
71 'tags' => '(array) Array of tag objects.',
72 ),
73 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/tags/?number=5',
74 )
75 );
76
77 /**
78 * GET taxonomies endpoint class.
79 *
80 * @phan-constructor-used-for-side-effects
81 */
82 class WPCOM_JSON_API_Get_Taxonomies_Endpoint extends WPCOM_JSON_API_Endpoint {
83 /**
84 *
85 * API callback.
86 * /sites/%s/tags -> $blog_id
87 * /sites/%s/categories -> $blog_id
88 *
89 * @param string $path - the path.
90 * @param int $blog_id - the blog ID.
91 */
92 public function callback( $path = '', $blog_id = 0 ) {
93 $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) );
94 if ( is_wp_error( $blog_id ) ) {
95 return $blog_id;
96 }
97
98 $args = $this->query_args();
99 $args = $this->process_args( $args );
100 if ( is_wp_error( $args ) ) {
101 return $args;
102 }
103
104 if ( preg_match( '#/tags#i', $path ) ) {
105 return $this->tags( $args );
106 } else {
107 return $this->categories( $args );
108 }
109 }
110
111 /**
112 * Process args.
113 *
114 * @param array $args - the arguments.
115 */
116 public function process_args( $args ) {
117 if ( $args['number'] < 1 ) {
118 $args['number'] = 100;
119 } elseif ( 1000 < $args['number'] ) {
120 return new WP_Error( 'invalid_number', 'The NUMBER parameter must be less than or equal to 1000.', 400 );
121 }
122
123 if ( isset( $args['page'] ) ) {
124 if ( $args['page'] < 1 ) {
125 $args['page'] = 1;
126 }
127
128 $args['offset'] = ( $args['page'] - 1 ) * $args['number'];
129 unset( $args['page'] );
130 }
131
132 if ( $args['offset'] < 0 ) {
133 $args['offset'] = 0;
134 }
135
136 $args['orderby'] = $args['order_by'];
137 unset( $args['order_by'] );
138
139 unset( $args['context'], $args['pretty'], $args['http_envelope'], $args['fields'] );
140 return $args;
141 }
142
143 /**
144 * Get categories.
145 *
146 * @param array $args - the arguments.
147 */
148 public function categories( $args ) {
149 $args['get'] = 'all';
150
151 $cats = get_categories( $args );
152 unset( $args['offset'] );
153 $args['taxonomy'] = 'category';
154 $found = wp_count_terms( $args );
155
156 $cats_obj = array();
157 foreach ( $cats as $cat ) {
158 $cats_obj[] = $this->format_taxonomy( $cat, 'category', 'display' );
159 }
160
161 return array(
162 'found' => (int) $found,
163 'categories' => $cats_obj,
164 );
165 }
166
167 /**
168 * Get tags.
169 *
170 * @param array $args - the arguments.
171 */
172 public function tags( $args ) {
173 $args['get'] = 'all';
174
175 $tags = (array) get_tags( $args );
176 unset( $args['offset'] );
177 $args['taxonomy'] = 'post_tag';
178 $found = wp_count_terms( $args );
179
180 $tags_obj = array();
181 foreach ( $tags as $tag ) {
182 $tags_obj[] = $this->format_taxonomy( $tag, 'post_tag', 'display' );
183 }
184
185 return array(
186 'found' => (int) $found,
187 'tags' => $tags_obj,
188 );
189 }
190 }
191