From 961d6904230b440a11cf1f73150805cd1498dcab Mon Sep 17 00:00:00 2001 From: Bernie Reiter Date: Fri, 24 Apr 2020 18:23:47 +0200 Subject: [PATCH 1/5] Edit Site: Remove templateIds prop from NavigateToLink --- .../src/components/block-editor/index.js | 7 +----- .../src/components/navigate-to-link/index.js | 25 ++++++++----------- 2 files changed, 11 insertions(+), 21 deletions(-) diff --git a/packages/edit-site/src/components/block-editor/index.js b/packages/edit-site/src/components/block-editor/index.js index 3bcfbcda557405..702e1f3f6bfc35 100644 --- a/packages/edit-site/src/components/block-editor/index.js +++ b/packages/edit-site/src/components/block-editor/index.js @@ -74,16 +74,11 @@ export default function BlockEditor() { ( fillProps ) => ( ), - [ - settings.templateIds, - settings.templateId, - setActiveTemplateId, - ] + [ settings.templateId, setActiveTemplateId ] ) } diff --git a/packages/edit-site/src/components/navigate-to-link/index.js b/packages/edit-site/src/components/navigate-to-link/index.js index 2b4e018bab1b51..50e72253b829e8 100644 --- a/packages/edit-site/src/components/navigate-to-link/index.js +++ b/packages/edit-site/src/components/navigate-to-link/index.js @@ -12,12 +12,7 @@ import { __ } from '@wordpress/i18n'; */ const { fetch } = window; -export default function NavigateToLink( { - url, - templateIds, - activeId, - onActiveIdChange, -} ) { +export default function NavigateToLink( { url, activeId, onActiveIdChange } ) { const [ templateId, setTemplateId ] = useState(); useEffect( () => { const effect = async () => { @@ -28,14 +23,14 @@ export default function NavigateToLink( { if ( success ) { let newTemplateId = data.ID; if ( newTemplateId === null ) { - const { getEntityRecord } = select( 'core' ); - newTemplateId = templateIds - .map( ( id ) => - getEntityRecord( 'postType', 'wp_template', id ) - ) - .find( - ( template ) => template.slug === data.post_name - ).id; + const { getEntityRecords } = select( 'core' ); + newTemplateId = getEntityRecords( + 'postType', + 'wp_template', + { + slug: data.post_name, + } + )[ 0 ].id; } setTemplateId( newTemplateId ); } else { @@ -46,7 +41,7 @@ export default function NavigateToLink( { } }; effect(); - }, [ url, templateIds ] ); + }, [ url ] ); const onClick = useMemo( () => { if ( ! templateId || templateId === activeId ) { return null; From 7130446d1b3497832c0859699810f679627391e4 Mon Sep 17 00:00:00 2001 From: Bernie Reiter Date: Wed, 13 May 2020 16:34:07 +0200 Subject: [PATCH 2/5] Add resolved: true --- packages/edit-site/src/components/navigate-to-link/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/edit-site/src/components/navigate-to-link/index.js b/packages/edit-site/src/components/navigate-to-link/index.js index 50e72253b829e8..ece3c36db4b99d 100644 --- a/packages/edit-site/src/components/navigate-to-link/index.js +++ b/packages/edit-site/src/components/navigate-to-link/index.js @@ -28,6 +28,7 @@ export default function NavigateToLink( { url, activeId, onActiveIdChange } ) { 'postType', 'wp_template', { + resolved: true, slug: data.post_name, } )[ 0 ].id; From ace511a96ccd3d2cdc3670a7e943d30946a4c97f Mon Sep 17 00:00:00 2001 From: Bernie Reiter Date: Wed, 13 May 2020 16:35:08 +0200 Subject: [PATCH 3/5] No assoc array needed --- lib/templates.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/templates.php b/lib/templates.php index 9336cf44717cfe..af41251f720dc6 100644 --- a/lib/templates.php +++ b/lib/templates.php @@ -194,10 +194,10 @@ function filter_rest_wp_template_query( $args, $request ) { $current_template = gutenberg_find_template_post_and_parts( $template_type ); if ( isset( $current_template ) ) { - $template_ids[ $current_template['template_post']->post_name ] = $current_template['template_post']->ID; + $template_ids[] = $current_template['template_post']->ID; } } - $args['post__in'] = array_values( $template_ids ); + $args['post__in'] = $template_ids; } return $args; From 326d349cd3d571734c019669639b2cfa2611728d Mon Sep 17 00:00:00 2001 From: Bernie Reiter Date: Wed, 13 May 2020 19:26:43 +0200 Subject: [PATCH 4/5] Fix logic --- lib/templates.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/templates.php b/lib/templates.php index af41251f720dc6..62bea3fb39642e 100644 --- a/lib/templates.php +++ b/lib/templates.php @@ -183,7 +183,7 @@ function filter_rest_wp_template_collection_params( $query_params ) { function filter_rest_wp_template_query( $args, $request ) { if ( $request['resolved'] ) { $template_ids = array( 0 ); // Return nothing by default (the 0 is needed for `post__in`). - $template_types = $request['slug'] ? array( $request['slug'] ) : get_template_types(); + $template_types = $request['slug'] ? $request['slug'] : get_template_types(); foreach ( $template_types as $template_type ) { // Skip 'embed' for now because it is not a regular template type. From 2528cfabf30b39b85f925c7650a15d137f38cad7 Mon Sep 17 00:00:00 2001 From: Bernie Reiter Date: Wed, 13 May 2020 19:56:18 +0200 Subject: [PATCH 5/5] Fix current template retrieval during render --- lib/template-loader.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/template-loader.php b/lib/template-loader.php index c0be22bc759571..f729fe437be5cc 100644 --- a/lib/template-loader.php +++ b/lib/template-loader.php @@ -93,7 +93,7 @@ function get_template_hierachy( $template_type ) { function gutenberg_override_query_template( $template, $type, array $templates = array() ) { global $_wp_current_template_id, $_wp_current_template_content; - $current_template = gutenberg_find_template_post_and_parts( basename( $template, '.php' ), $templates ); + $current_template = gutenberg_find_template_post_and_parts( $type, $templates ); if ( $current_template ) { $_wp_current_template_id = $current_template['template_post']->ID;