- Timestamp:
- 06/07/2020 06:44:08 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/rest-api/endpoints/class-wp-rest-themes-controller.php
r47432 r47921 116 116 $fields = $this->get_fields_for_response( $request ); 117 117 118 if ( in_array( 'theme_supports', $fields, true ) ) { 118 if ( rest_is_field_included( 'stylesheet', $fields ) ) { 119 $data['stylesheet'] = $theme->get_stylesheet(); 120 } 121 122 if ( rest_is_field_included( 'template', $fields ) ) { 123 /** 124 * Use the get_template() method, not the 'Template' header, for finding the template. 125 * The 'Template' header is only good for what was written in the style.css, while 126 * get_template() takes into account where WordPress actually located the theme and 127 * whether it is actually valid. 128 */ 129 $data['template'] = $theme->get_template(); 130 } 131 132 $plain_field_mappings = array( 133 'requires_php' => 'RequiresPHP', 134 'requires_wp' => 'RequiresWP', 135 'textdomain' => 'TextDomain', 136 'version' => 'Version', 137 ); 138 139 foreach ( $plain_field_mappings as $field => $header ) { 140 if ( rest_is_field_included( $field, $fields ) ) { 141 $data[ $field ] = $theme->get( $header ); 142 } 143 } 144 145 if ( rest_is_field_included( 'screenshot', $fields ) ) { 146 // Using $theme->get_screenshot() with no args to get absolute URL. 147 $data['screenshot'] = $theme->get_screenshot() ?: ''; 148 } 149 150 $rich_field_mappings = array( 151 'author' => 'Author', 152 'author_uri' => 'AuthorURI', 153 'description' => 'Description', 154 'name' => 'Name', 155 'tags' => 'Tags', 156 'theme_uri' => 'ThemeURI', 157 ); 158 159 foreach ( $rich_field_mappings as $field => $header ) { 160 if ( rest_is_field_included( "{$field}.raw", $fields ) ) { 161 $data[ $field ]['raw'] = $theme->display( $header, false, true ); 162 } 163 164 if ( rest_is_field_included( "{$field}.rendered", $fields ) ) { 165 $data[ $field ]['rendered'] = $theme->display( $header ); 166 } 167 } 168 169 if ( rest_is_field_included( 'theme_supports', $fields ) ) { 119 170 $item_schemas = $this->get_item_schema(); 120 171 $theme_supports = $item_schemas['properties']['theme_supports']['properties']; 121 172 foreach ( $theme_supports as $name => $schema ) { 173 if ( ! rest_is_field_included( "theme_supports.{$name}", $fields ) ) { 174 continue; 175 } 176 122 177 if ( 'formats' === $name ) { 123 178 continue; … … 193 248 'type' => 'object', 194 249 'properties' => array( 250 'stylesheet' => array( 251 'description' => __( 'The theme\'s stylesheet. This uniquely identifies the theme.' ), 252 'type' => 'string', 253 'readonly' => true, 254 ), 255 'template' => array( 256 'description' => __( 'The theme\'s template. If this is a child theme, this refers to the parent theme, otherwise this is the same as the theme\'s stylesheet.' ), 257 'type' => 'string', 258 'readonly' => true, 259 ), 260 'author' => array( 261 'description' => __( 'The theme author.' ), 262 'type' => 'object', 263 'readonly' => true, 264 'properties' => array( 265 'raw' => array( 266 'description' => __( 'The theme author\'s name, as found in the theme header.' ), 267 'type' => 'string', 268 ), 269 'rendered' => array( 270 'description' => __( 'HTML for the theme author, transformed for display.' ), 271 'type' => 'string', 272 ), 273 ), 274 ), 275 'author_uri' => array( 276 'description' => __( 'The website of the theme author.' ), 277 'type' => 'object', 278 'readonly' => true, 279 'properties' => array( 280 'raw' => array( 281 'description' => __( 'The website of the theme author, as found in the theme header.' ), 282 'type' => 'string', 283 'format' => 'uri', 284 ), 285 'rendered' => array( 286 'description' => __( 'The website of the theme author, transformed for display.' ), 287 'type' => 'string', 288 'format' => 'uri', 289 ), 290 ), 291 ), 292 'description' => array( 293 'description' => __( 'A description of the theme.' ), 294 'type' => 'object', 295 'readonly' => true, 296 'properties' => array( 297 'raw' => array( 298 'description' => __( 'The theme description, as found in the theme header.' ), 299 'type' => 'string', 300 ), 301 'rendered' => array( 302 'description' => __( 'The theme description, transformed for display.' ), 303 'type' => 'string', 304 ), 305 ), 306 ), 307 'name' => array( 308 'description' => __( 'The name of the theme.' ), 309 'type' => 'object', 310 'readonly' => true, 311 'properties' => array( 312 'raw' => array( 313 'description' => __( 'The theme name, as found in the theme header.' ), 314 'type' => 'string', 315 ), 316 'rendered' => array( 317 'description' => __( 'The theme name, transformed for display.' ), 318 'type' => 'string', 319 ), 320 ), 321 ), 322 'requires_php' => array( 323 'description' => __( 'The minimum PHP version required for the theme to work.' ), 324 'type' => 'string', 325 'readonly' => true, 326 ), 327 'requires_wp' => array( 328 'description' => __( 'The minimum WordPress version required for the theme to work.' ), 329 'type' => 'string', 330 'readonly' => true, 331 ), 332 'screenshot' => array( 333 'description' => __( 'The theme\'s screenshot URL.' ), 334 'type' => 'string', 335 'format' => 'uri', 336 'readonly' => true, 337 ), 338 'tags' => array( 339 'description' => __( 'Tags indicating styles and features of the theme.' ), 340 'type' => 'object', 341 'readonly' => true, 342 'properties' => array( 343 'raw' => array( 344 'description' => __( 'The theme tags, as found in the theme header.' ), 345 'type' => 'array', 346 'items' => array( 347 'type' => 'string', 348 ), 349 ), 350 'rendered' => array( 351 'description' => __( 'The theme tags, transformed for display.' ), 352 'type' => 'string', 353 ), 354 ), 355 ), 356 'textdomain' => array( 357 'description' => __( 'The theme\'s textdomain.' ), 358 'type' => 'string', 359 'readonly' => true, 360 ), 195 361 'theme_supports' => array( 196 362 'description' => __( 'Features supported by this theme.' ), … … 459 625 ), 460 626 ), 627 'theme_uri' => array( 628 'description' => __( 'The URI of the theme\'s webpage.' ), 629 'type' => 'object', 630 'readonly' => true, 631 'properties' => array( 632 'raw' => array( 633 'description' => __( 'The URI of the theme\'s webpage, as found in the theme header.' ), 634 'type' => 'string', 635 'format' => 'uri', 636 ), 637 'rendered' => array( 638 'description' => __( 'The URI of the theme\'s webpage, transformed for display.' ), 639 'type' => 'string', 640 'format' => 'uri', 641 ), 642 ), 643 ), 644 'version' => array( 645 'description' => __( 'The theme\'s current version.' ), 646 'type' => 'string', 647 'readonly' => true, 648 ), 461 649 ), 462 650 );
Note: See TracChangeset
for help on using the changeset viewer.