Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Edit Site: Fix Template Part Auto-draft creation #23050

Merged
merged 1 commit into from
Jun 10, 2020

Conversation

ockham
Copy link
Contributor

@ockham ockham commented Jun 10, 2020

Description

This fixes an issue introduced by yours truly in #22143, and first reported by @carolinan in Slack:

🤷‍♀️ With current master (and 8.3 rc1) FSE template parts are no longer showing in the site editor. Only templates (And only templates are exported with the theme exporter). Did something change for how we include template parts inside the templates?

The problem was that we were bailing early from create_auto_draft_for_template_part_block if the block type was not core/template-part. But this means that we also didn't descend into recursion of a block's inner blocks, and neglected e.g. the template part block children of a group block.

This probably went unnoticed for a while because many of us still had some auto-generated template part auto-drafts lingering from previous runs of the site editor.

Diff best viewed with whitespace changes ignored.

Thanks @carolinan for reporting, and @nosolosw for bringing this to my attention!

How has this been tested?

  • There shouldn't be any wp_template CPTs (neither published nor auto-drafts) from previous Site Editor runs. (It's best to start with a fresh install, i.e. npx wp-env clean all && npx wp-env start. Careful, this will wipe your WordPress install's data!)
  • Furthermore, the "Full Site Editing Demo Templates" checkbox in /wp-admin/admin.php?page=gutenberg-experiments must not be ticked. (Make sure the "Full Site Editing" checkbox is ticked -- since it also gets reset after a wipe.)
  • Make sure you have linked your wp-env install to themes from the theme-experiments repo (see the wp-env README).
  • Activate the "Twenty Twenty Blocks" theme, and open the site editor. Verify that the header and footer template parts are shown in the editor, that they are present in the template switcher, and that no errors or notices are printed.

Screenshots

Before

image

After

image

Types of changes

Bug fix

Checklist:

  • My code is tested.
  • My code follows the WordPress code style.
  • My code follows the accessibility standards.
  • My code has proper inline documentation.
  • I've included developer documentation if appropriate.
  • I've updated all React Native files affected by any refactorings/renamings in this PR.

@ockham ockham added [Type] Bug An existing feature does not function as intended [Priority] High Used to indicate top priority items that need quick attention [Feature] Full Site Editing labels Jun 10, 2020
@ockham ockham self-assigned this Jun 10, 2020
@oandregal oandregal mentioned this pull request Jun 10, 2020
7 tasks
@github-actions
Copy link

Size Change: 0 B

Total Size: 1.13 MB

ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.62 kB 0 B
build/api-fetch/index.js 3.4 kB 0 B
build/autop/index.js 2.83 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/index.js 6.77 kB 0 B
build/block-directory/style-rtl.css 892 B 0 B
build/block-directory/style.css 892 B 0 B
build/block-editor/index.js 106 kB 0 B
build/block-editor/style-rtl.css 11.8 kB 0 B
build/block-editor/style.css 11.8 kB 0 B
build/block-library/editor-rtl.css 7.88 kB 0 B
build/block-library/editor.css 7.89 kB 0 B
build/block-library/index.js 127 kB 0 B
build/block-library/style-rtl.css 7.72 kB 0 B
build/block-library/style.css 7.72 kB 0 B
build/block-library/theme-rtl.css 684 B 0 B
build/block-library/theme.css 686 B 0 B
build/block-serialization-default-parser/index.js 1.88 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 48.1 kB 0 B
build/components/index.js 195 kB 0 B
build/components/style-rtl.css 19.5 kB 0 B
build/components/style.css 19.5 kB 0 B
build/compose/index.js 9.31 kB 0 B
build/core-data/index.js 11.4 kB 0 B
build/data-controls/index.js 1.29 kB 0 B
build/data/index.js 8.44 kB 0 B
build/date/index.js 5.47 kB 0 B
build/deprecated/index.js 772 B 0 B
build/dom-ready/index.js 568 B 0 B
build/dom/index.js 3.17 kB 0 B
build/edit-navigation/index.js 8.24 kB 0 B
build/edit-navigation/style-rtl.css 918 B 0 B
build/edit-navigation/style.css 919 B 0 B
build/edit-post/index.js 303 kB 0 B
build/edit-post/style-rtl.css 5.6 kB 0 B
build/edit-post/style.css 5.6 kB 0 B
build/edit-site/index.js 16.6 kB 0 B
build/edit-site/style-rtl.css 2.96 kB 0 B
build/edit-site/style.css 2.96 kB 0 B
build/edit-widgets/index.js 9.34 kB 0 B
build/edit-widgets/style-rtl.css 2.4 kB 0 B
build/edit-widgets/style.css 2.4 kB 0 B
build/editor/editor-styles-rtl.css 425 B 0 B
build/editor/editor-styles.css 428 B 0 B
build/editor/index.js 44.8 kB 0 B
build/editor/style-rtl.css 4.26 kB 0 B
build/editor/style.css 4.27 kB 0 B
build/element/index.js 4.64 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.72 kB 0 B
build/format-library/style-rtl.css 502 B 0 B
build/format-library/style.css 502 B 0 B
build/hooks/index.js 2.13 kB 0 B
build/html-entities/index.js 622 B 0 B
build/i18n/index.js 3.56 kB 0 B
build/is-shallow-equal/index.js 710 B 0 B
build/keyboard-shortcuts/index.js 2.51 kB 0 B
build/keycodes/index.js 1.94 kB 0 B
build/list-reusable-blocks/index.js 3.12 kB 0 B
build/list-reusable-blocks/style-rtl.css 226 B 0 B
build/list-reusable-blocks/style.css 226 B 0 B
build/media-utils/index.js 5.29 kB 0 B
build/notices/index.js 1.79 kB 0 B
build/nux/index.js 3.4 kB 0 B
build/nux/style-rtl.css 616 B 0 B
build/nux/style.css 613 B 0 B
build/plugins/index.js 2.56 kB 0 B
build/primitives/index.js 1.5 kB 0 B
build/priority-queue/index.js 789 B 0 B
build/redux-routine/index.js 2.85 kB 0 B
build/rich-text/index.js 14.8 kB 0 B
build/server-side-render/index.js 2.68 kB 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.28 kB 0 B
build/url/index.js 4.06 kB 0 B
build/viewport/index.js 1.85 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

@ockham
Copy link
Contributor Author

ockham commented Jun 10, 2020

Restarting the failing Travis CI job.

@ockham
Copy link
Contributor Author

ockham commented Jun 10, 2020

Still failing. It's the Build Artifacts job, I'll investigate.

@oandregal
Copy link
Member

@ockham there's a convo in core-editor as well https://wordpress.slack.com/archives/C02QB2JS7/p1591791354355800

Copy link
Contributor

@carolinan carolinan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All template parts are showing (and saving) correctly for the 3 themes I tested.

@ockham ockham mentioned this pull request Jun 10, 2020
6 tasks
@ockham
Copy link
Contributor Author

ockham commented Jun 10, 2020

Filed #23052 to hopefully fix the issue with the Build Artifacts job 🤞

@oandregal oandregal merged commit 355abf8 into master Jun 10, 2020
@oandregal oandregal deleted the fix/template-part-auto-draft-creation branch June 10, 2020 14:01
@github-actions github-actions bot added this to the Gutenberg 8.4 milestone Jun 10, 2020
oandregal pushed a commit that referenced this pull request Jun 10, 2020
- Edit Site: fix template lookup. #22954
- Fix for FSE template parts: #23050
- Fix link color style rule. #23025
- Fix for link color: it needs to be opt-in. #23049
- Revert "Image Block: add caption field to placeholder" #23027
- Cover padding: reset button + hook namespace + improve visualizer #23041
- Fix failing 'Build artifacts' CI job (by updating `package-lock.json`): #23052
Copy link
Contributor

@epiqueras epiqueras left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the quick fix!

if ( 'core/template-part' !== $block['blockName'] ) {
return array();
}
$template_part_ids = array();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't need to be an array.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the alternative? 🤔 It seemed like the most straight-forward way to allow for the inner blocks recursion to conditionally extend it.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I just expected it to be added to the array at the end instead of declaring itself as an array, but I can see how that can be more complicated in PHP.

@ellatrix ellatrix mentioned this pull request Jun 16, 2020
12 tasks
This was referenced Jun 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Priority] High Used to indicate top priority items that need quick attention [Type] Bug An existing feature does not function as intended
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants