Skip to content

Commit

Permalink
Toolbar: Make the 'Edit site' link open the editor with the current t…
Browse files Browse the repository at this point in the history
…emplate.

Adds a global, `$_wp_current_template_id`, to allow the 'Edit site' link in the admin bar to be aware of the current template and pass it to the Site Editor, so it can load the appropriate one directly.

See WordPress/gutenberg#37850 for further discussion.

Props Mamaduka, poena, abitofmind, audrasjb, mikinc860, alexstine, annezazu, beckej, jameskoster, bacoords, clubkert, paaljoachim, get_dave, priethor, skorasaurus.
Fixes #58746.
Built from https://develop.svn.wordpress.org/trunk@56209


git-svn-id: https://core.svn.wordpress.org/trunk@55721 1a063a9b-81f0-0310-95a4-ce76da25c4cd
  • Loading branch information
getsource committed Jul 11, 2023
1 parent a3ca12a commit 06bf931
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 3 deletions.
13 changes: 12 additions & 1 deletion wp-includes/admin-bar.php
Original file line number Diff line number Diff line change
Expand Up @@ -419,9 +419,14 @@ function wp_admin_bar_site_menu( $wp_admin_bar ) {
*
* @since 5.9.0
*
* @global string $_wp_current_template_id
* @since 6.3.0 Added `$_wp_current_template_id` global for editing of current template directly from the admin bar.
*
* @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
*/
function wp_admin_bar_edit_site_menu( $wp_admin_bar ) {
global $_wp_current_template_id;

// Don't show if a block theme is not activated.
if ( ! wp_is_block_theme() ) {
return;
Expand All @@ -436,7 +441,13 @@ function wp_admin_bar_edit_site_menu( $wp_admin_bar ) {
array(
'id' => 'site-editor',
'title' => __( 'Edit site' ),
'href' => admin_url( 'site-editor.php' ),
'href' => add_query_arg(
array(
'postType' => 'wp_template',
'postId' => $_wp_current_template_id,
),
admin_url( 'site-editor.php' )
),
)
);
}
Expand Down
6 changes: 5 additions & 1 deletion wp-includes/block-template.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,18 @@ function _add_template_loader_filters() {
* Internally, this communicates the block content that needs to be used by the template canvas through a global variable.
*
* @since 5.8.0
* @since 6.3.0 Added `$_wp_current_template_id` global for editing of current template directly from the admin bar.
*
* @global string $_wp_current_template_content
* @global string $_wp_current_template_id
*
* @param string $template Path to the template. See locate_template().
* @param string $type Sanitized filename without extension.
* @param string[] $templates A list of template candidates, in descending order of priority.
* @return string The path to the Site Editor template canvas file, or the fallback PHP template.
*/
function locate_block_template( $template, $type, array $templates ) {
global $_wp_current_template_content;
global $_wp_current_template_content, $_wp_current_template_id;

if ( ! current_theme_supports( 'block-templates' ) ) {
return $template;
Expand Down Expand Up @@ -64,6 +66,8 @@ function locate_block_template( $template, $type, array $templates ) {
$block_template = resolve_block_template( $type, $templates, $template );

if ( $block_template ) {
$_wp_current_template_id = $block_template->id;

if ( empty( $block_template->content ) && is_user_logged_in() ) {
$_wp_current_template_content =
sprintf(
Expand Down
2 changes: 1 addition & 1 deletion wp-includes/version.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
*
* @global string $wp_version
*/
$wp_version = '6.3-beta3-56208';
$wp_version = '6.3-beta3-56209';

/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
Expand Down

0 comments on commit 06bf931

Please sign in to comment.