Changeset 59965
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/rest-api/endpoints/class-wp-rest-themes-controller.php
r58694 r59965 349 349 } 350 350 351 if ( rest_is_field_included( 'default_template_types', $fields ) && $this->is_same_theme( $theme, $current_theme ) ) { 352 $default_template_types = array(); 353 foreach ( get_default_block_template_types() as $slug => $template_type ) { 354 $template_type['slug'] = (string) $slug; 355 $default_template_types[] = $template_type; 356 } 357 $data['default_template_types'] = $default_template_types; 358 } 359 360 if ( rest_is_field_included( 'default_template_part_areas', $fields ) && $this->is_same_theme( $theme, $current_theme ) ) { 361 $data['default_template_part_areas'] = get_allowed_block_template_part_areas(); 362 } 363 351 364 $data = $this->add_additional_fields_to_object( $data, $request ); 352 365 … … 460 473 'type' => 'object', 461 474 'properties' => array( 462 'stylesheet' => array(475 'stylesheet' => array( 463 476 'description' => __( 'The theme\'s stylesheet. This uniquely identifies the theme.' ), 464 477 'type' => 'string', 465 478 'readonly' => true, 466 479 ), 467 'stylesheet_uri' => array(480 'stylesheet_uri' => array( 468 481 'description' => __( 'The uri for the theme\'s stylesheet directory.' ), 469 482 'type' => 'string', … … 471 484 'readonly' => true, 472 485 ), 473 'template' => array(486 'template' => array( 474 487 '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.' ), 475 488 'type' => 'string', 476 489 'readonly' => true, 477 490 ), 478 'template_uri' => array(491 'template_uri' => array( 479 492 'description' => __( 'The uri for the theme\'s template directory. If this is a child theme, this refers to the parent theme, otherwise this is the same as the theme\'s stylesheet directory.' ), 480 493 'type' => 'string', … … 482 495 'readonly' => true, 483 496 ), 484 'author' => array(497 'author' => array( 485 498 'description' => __( 'The theme author.' ), 486 499 'type' => 'object', … … 497 510 ), 498 511 ), 499 'author_uri' => array(512 'author_uri' => array( 500 513 'description' => __( 'The website of the theme author.' ), 501 514 'type' => 'object', … … 514 527 ), 515 528 ), 516 'description' => array(529 'description' => array( 517 530 'description' => __( 'A description of the theme.' ), 518 531 'type' => 'object', … … 529 542 ), 530 543 ), 531 'is_block_theme' => array(544 'is_block_theme' => array( 532 545 'description' => __( 'Whether the theme is a block-based theme.' ), 533 546 'type' => 'boolean', 534 547 'readonly' => true, 535 548 ), 536 'name' => array(549 'name' => array( 537 550 'description' => __( 'The name of the theme.' ), 538 551 'type' => 'object', … … 549 562 ), 550 563 ), 551 'requires_php' => array(564 'requires_php' => array( 552 565 'description' => __( 'The minimum PHP version required for the theme to work.' ), 553 566 'type' => 'string', 554 567 'readonly' => true, 555 568 ), 556 'requires_wp' => array(569 'requires_wp' => array( 557 570 'description' => __( 'The minimum WordPress version required for the theme to work.' ), 558 571 'type' => 'string', 559 572 'readonly' => true, 560 573 ), 561 'screenshot' => array(574 'screenshot' => array( 562 575 'description' => __( 'The theme\'s screenshot URL.' ), 563 576 'type' => 'string', … … 565 578 'readonly' => true, 566 579 ), 567 'tags' => array(580 'tags' => array( 568 581 'description' => __( 'Tags indicating styles and features of the theme.' ), 569 582 'type' => 'object', … … 583 596 ), 584 597 ), 585 'textdomain' => array(598 'textdomain' => array( 586 599 'description' => __( 'The theme\'s text domain.' ), 587 600 'type' => 'string', 588 601 'readonly' => true, 589 602 ), 590 'theme_supports' => array(603 'theme_supports' => array( 591 604 'description' => __( 'Features supported by this theme.' ), 592 605 'type' => 'object', … … 594 607 'properties' => array(), 595 608 ), 596 'theme_uri' => array(609 'theme_uri' => array( 597 610 'description' => __( 'The URI of the theme\'s webpage.' ), 598 611 'type' => 'object', … … 611 624 ), 612 625 ), 613 'version' => array(626 'version' => array( 614 627 'description' => __( 'The theme\'s current version.' ), 615 628 'type' => 'string', 616 629 'readonly' => true, 617 630 ), 618 'status' => array(631 'status' => array( 619 632 'description' => __( 'A named status for the theme.' ), 620 633 'type' => 'string', 621 634 'enum' => array( 'inactive', 'active' ), 635 ), 636 'default_template_types' => array( 637 'description' => __( 'A list of default template types.' ), 638 'type' => 'array', 639 'readonly' => true, 640 'items' => array( 641 'type' => 'object', 642 'properties' => array( 643 'slug' => array( 644 'type' => 'string', 645 ), 646 'title' => array( 647 'type' => 'string', 648 ), 649 'description' => array( 650 'type' => 'string', 651 ), 652 ), 653 ), 654 ), 655 'default_template_part_areas' => array( 656 'description' => __( 'A list of allowed area values for template parts.' ), 657 'type' => 'array', 658 'readonly' => true, 659 'items' => array( 660 'type' => 'object', 661 'properties' => array( 662 'area' => array( 663 'type' => 'string', 664 ), 665 'label' => array( 666 'type' => 'string', 667 ), 668 'description' => array( 669 'type' => 'string', 670 ), 671 'icon' => array( 672 'type' => 'string', 673 ), 674 'area_tag' => array( 675 'type' => 'string', 676 ), 677 ), 678 ), 622 679 ), 623 680 ), -
trunk/tests/phpunit/tests/rest-api/rest-themes-controller.php
r59822 r59965 164 164 * @ticket 45016 165 165 * @ticket 61021 166 * @ticket 62574. 166 167 */ 167 168 public function test_get_items() { … … 176 177 'author', 177 178 'author_uri', 179 'default_template_part_areas', 180 'default_template_types', 178 181 'description', 179 182 'is_block_theme', … … 355 358 * @ticket 45016 356 359 * @ticket 61021 360 * @ticket 62574 357 361 */ 358 362 public function test_get_item_schema() { … … 360 364 $data = $response->get_data(); 361 365 $properties = $data['schema']['properties']; 362 $this->assertCount( 18, $properties );366 $this->assertCount( 20, $properties ); 363 367 364 368 $this->assertArrayHasKey( 'author', $properties ); … … 373 377 $this->assertArrayHasKey( 'raw', $properties['description']['properties'] ); 374 378 $this->assertArrayHasKey( 'rendered', $properties['description']['properties'] ); 379 380 $this->assertArrayHasKey( 'default_template_part_areas', $properties ); 381 $this->assertArrayHasKey( 'default_template_types', $properties ); 375 382 376 383 $this->assertArrayHasKey( 'is_block_theme', $properties ); … … 474 481 475 482 /** 483 * @ticket 62574 484 */ 485 public function test_theme_default_template_part_areas() { 486 $response = self::perform_active_theme_request(); 487 $result = $response->get_data(); 488 $this->assertArrayHasKey( 'default_template_part_areas', $result[0] ); 489 $this->assertSame( get_allowed_block_template_part_areas(), $result[0]['default_template_part_areas'] ); 490 } 491 492 /** 493 * @ticket 62574 494 */ 495 public function test_theme_default_template_types() { 496 $response = self::perform_active_theme_request(); 497 $result = $response->get_data(); 498 $expected = array(); 499 foreach ( get_default_block_template_types() as $slug => $template_type ) { 500 $template_type['slug'] = (string) $slug; 501 $expected[] = $template_type; 502 } 503 504 $this->assertArrayHasKey( 'default_template_types', $result[0] ); 505 $this->assertSame( $expected, $result[0]['default_template_types'] ); 506 } 507 508 /** 476 509 * @ticket 49906 477 510 */
Note: See TracChangeset
for help on using the changeset viewer.