Make WordPress Core


Ignore:
Timestamp:
10/21/2025 01:40:28 PM (7 months ago)
Author:
ellatrix
Message:

Templates: add PHP changes required for the template activation feature.

  • Adds the active_templates setting, which is an object holding the template slug as a key and template post ID as the value.
  • To maintain backwards compatibility, any wp_template (post type) not created through the new API will be activated.
  • get_block_template and get_block_templates have been adjusted to check active_templates. These functions should never return inactive templates, just like before, to maintain backwards compatibility.
  • The pre-existing /templates endpoint and sub-endpoints remain and work exactly as before.
  • A new endpoint /wp_template has been added, but this is just a regular posts controller (WP_REST_Posts_Controller). We do register an additional theme field and expose the is_wp_suggestion meta.
  • Another new endpoint /wp_registered_template has been added, which is read-only and lists the registered templates from themes and plugin (un-edited, without activations applied).

These changes are to be iterated on.

See https://github.com/WordPress/wordpress-develop/pull/8063.

Props ellatrix, shailu25, ntsekouras.
Fixes #62755.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/site-editor.php

    r60681 r61029  
    183183    array( rest_get_route_for_post_type_items( 'page' ), 'OPTIONS' ),
    184184    '/wp/v2/types?context=view',
     185    '/wp/v2/wp_registered_template?context=edit',
    185186    '/wp/v2/types/wp_template?context=edit',
    186187    '/wp/v2/types/wp_template_part?context=edit',
     
    245246        }
    246247    }
    247 } else {
     248} elseif ( isset( $_GET['p'] ) && '/' !== $_GET['p'] ) {
     249    // Only prefetch for the root. If we preload it for all pages and it's not
     250    // used it won't be possible to invalidate.
    248251    $preload_paths[] = '/wp/v2/templates/lookup?slug=front-page';
    249252    $preload_paths[] = '/wp/v2/templates/lookup?slug=home';
Note: See TracChangeset for help on using the changeset viewer.