From 440ccc0354edc09744509a7ba2b2176298ccae4f Mon Sep 17 00:00:00 2001 From: Jeremy Yip Date: Wed, 9 Dec 2020 16:47:08 -0800 Subject: [PATCH 1/5] Support fetching template parts by theme when themes have parent directory --- .../src/template-part/edit/use-template-part-post.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/block-library/src/template-part/edit/use-template-part-post.js b/packages/block-library/src/template-part/edit/use-template-part-post.js index fed17e7a4cd77a..ed5acc234697ae 100644 --- a/packages/block-library/src/template-part/edit/use-template-part-post.js +++ b/packages/block-library/src/template-part/edit/use-template-part-post.js @@ -24,13 +24,14 @@ export default function useTemplatePartPost( postId, slug, theme ) { // relevant file. if ( slug && theme ) { const cleanedSlug = cleanForSlug( slug ); + const themeSlug = `pub-${ theme }`; const posts = select( 'core' ).getEntityRecords( 'postType', 'wp_template_part', { status: [ 'publish', 'auto-draft' ], slug: cleanedSlug, - theme, + themeSlug, } ); From a7aaa65a83adb19536a90273e91f90d364645456 Mon Sep 17 00:00:00 2001 From: Jeremy Yip Date: Tue, 15 Dec 2020 11:43:39 -0800 Subject: [PATCH 2/5] Query template parts by themes using transformed slug --- .../src/template-part/edit/use-template-part-post.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/block-library/src/template-part/edit/use-template-part-post.js b/packages/block-library/src/template-part/edit/use-template-part-post.js index ed5acc234697ae..d9fda8e16117ec 100644 --- a/packages/block-library/src/template-part/edit/use-template-part-post.js +++ b/packages/block-library/src/template-part/edit/use-template-part-post.js @@ -23,15 +23,17 @@ export default function useTemplatePartPost( postId, slug, theme ) { // load the auto-draft created from the // relevant file. if ( slug && theme ) { + const currentTheme = select( 'core' ).getCurrentTheme() + ?.stylesheet; const cleanedSlug = cleanForSlug( slug ); - const themeSlug = `pub-${ theme }`; + const themeSlug = currentTheme.replace( '/', '-' ); const posts = select( 'core' ).getEntityRecords( 'postType', 'wp_template_part', { status: [ 'publish', 'auto-draft' ], slug: cleanedSlug, - themeSlug, + theme: themeSlug, } ); From 0123a5ce972d9f193926087d743feaceb91301b2 Mon Sep 17 00:00:00 2001 From: Jeremy Yip Date: Tue, 15 Dec 2020 16:44:03 -0800 Subject: [PATCH 3/5] Handle null getCurrentTheme value --- .../src/template-part/edit/use-template-part-post.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/block-library/src/template-part/edit/use-template-part-post.js b/packages/block-library/src/template-part/edit/use-template-part-post.js index d9fda8e16117ec..3e07dbbc449ccc 100644 --- a/packages/block-library/src/template-part/edit/use-template-part-post.js +++ b/packages/block-library/src/template-part/edit/use-template-part-post.js @@ -26,7 +26,7 @@ export default function useTemplatePartPost( postId, slug, theme ) { const currentTheme = select( 'core' ).getCurrentTheme() ?.stylesheet; const cleanedSlug = cleanForSlug( slug ); - const themeSlug = currentTheme.replace( '/', '-' ); + const themeSlug = currentTheme?.replace( '/', '-' ); const posts = select( 'core' ).getEntityRecords( 'postType', 'wp_template_part', From a7d8bf02eb19f34b31c5b42598afacbe84a5bad9 Mon Sep 17 00:00:00 2001 From: Jeremy Yip Date: Thu, 17 Dec 2020 23:13:14 -0800 Subject: [PATCH 4/5] Query by theme name instead of theme slug --- .../src/template-part/edit/use-template-part-post.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/block-library/src/template-part/edit/use-template-part-post.js b/packages/block-library/src/template-part/edit/use-template-part-post.js index 3e07dbbc449ccc..5546e6ca7f0172 100644 --- a/packages/block-library/src/template-part/edit/use-template-part-post.js +++ b/packages/block-library/src/template-part/edit/use-template-part-post.js @@ -26,14 +26,13 @@ export default function useTemplatePartPost( postId, slug, theme ) { const currentTheme = select( 'core' ).getCurrentTheme() ?.stylesheet; const cleanedSlug = cleanForSlug( slug ); - const themeSlug = currentTheme?.replace( '/', '-' ); const posts = select( 'core' ).getEntityRecords( 'postType', 'wp_template_part', { status: [ 'publish', 'auto-draft' ], slug: cleanedSlug, - theme: themeSlug, + theme: currentTheme, } ); From aa74ba7fe1f373f5d3e4d1faabef3bab268db186 Mon Sep 17 00:00:00 2001 From: Jeremy Yip Date: Fri, 18 Dec 2020 00:40:46 -0800 Subject: [PATCH 5/5] Use theme name for template part WP_Queries --- lib/template-parts.php | 2 +- packages/block-library/src/template-part/index.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/template-parts.php b/lib/template-parts.php index 464200f66d000a..da1407ed667e07 100644 --- a/lib/template-parts.php +++ b/lib/template-parts.php @@ -138,7 +138,7 @@ function filter_rest_wp_template_part_query( $args, $request ) { $tax_query = isset( $args['tax_query'] ) ? $args['tax_query'] : array(); $tax_query[] = array( 'taxonomy' => 'wp_theme', - 'field' => 'slug', + 'field' => 'name', 'terms' => $request['theme'], ); diff --git a/packages/block-library/src/template-part/index.php b/packages/block-library/src/template-part/index.php index a960aa969bc906..313ef8a85d319b 100644 --- a/packages/block-library/src/template-part/index.php +++ b/packages/block-library/src/template-part/index.php @@ -28,7 +28,7 @@ function render_block_core_template_part( $attributes ) { 'tax_query' => array( array( 'taxonomy' => 'wp_theme', - 'field' => 'slug', + 'field' => 'name', 'terms' => $attributes['theme'], ), ),