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

Disable customizer and widgets from FSE #26594

Merged
merged 3 commits into from
Nov 2, 2020
Merged

Conversation

youknowriad
Copy link
Contributor

Builds on top of #26500

This PR cleans wp-admin a bit for FSE themes:

  • It disables the widgets and the customizer screens
  • It moves the Site Editor screen before the "Appearance" menu and clarify its beta status.

Capture d’écran 2020-10-30 à 12 12 54 PM

@github-actions
Copy link

github-actions bot commented Oct 30, 2020

Size Change: 0 B

Total Size: 1.21 MB

ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.78 kB 0 B
build/api-fetch/index.js 3.45 kB 0 B
build/autop/index.js 2.84 kB 0 B
build/blob/index.js 665 B 0 B
build/block-directory/index.js 8.72 kB 0 B
build/block-directory/style-rtl.css 943 B 0 B
build/block-directory/style.css 942 B 0 B
build/block-editor/index.js 130 kB 0 B
build/block-editor/style-rtl.css 11.1 kB 0 B
build/block-editor/style.css 11.1 kB 0 B
build/block-library/editor-rtl.css 8.97 kB 0 B
build/block-library/editor.css 8.97 kB 0 B
build/block-library/index.js 146 kB 0 B
build/block-library/style-rtl.css 7.86 kB 0 B
build/block-library/style.css 7.86 kB 0 B
build/block-library/theme-rtl.css 837 B 0 B
build/block-library/theme.css 838 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 172 kB 0 B
build/components/style-rtl.css 15.2 kB 0 B
build/components/style.css 15.2 kB 0 B
build/compose/index.js 9.81 kB 0 B
build/core-data/index.js 12.3 kB 0 B
build/data-controls/index.js 772 B 0 B
build/data/index.js 8.77 kB 0 B
build/date/index.js 31.8 kB 0 B
build/deprecated/index.js 768 B 0 B
build/dom-ready/index.js 571 B 0 B
build/dom/index.js 4.46 kB 0 B
build/edit-navigation/index.js 11.2 kB 0 B
build/edit-navigation/style-rtl.css 881 B 0 B
build/edit-navigation/style.css 885 B 0 B
build/edit-post/index.js 306 kB 0 B
build/edit-post/style-rtl.css 6.41 kB 0 B
build/edit-post/style.css 6.39 kB 0 B
build/edit-site/index.js 22.1 kB 0 B
build/edit-site/style-rtl.css 3.88 kB 0 B
build/edit-site/style.css 3.88 kB 0 B
build/edit-widgets/index.js 26.4 kB 0 B
build/edit-widgets/style-rtl.css 3.13 kB 0 B
build/edit-widgets/style.css 3.13 kB 0 B
build/editor/editor-styles-rtl.css 480 B 0 B
build/editor/editor-styles.css 482 B 0 B
build/editor/index.js 43.1 kB 0 B
build/editor/style-rtl.css 3.85 kB 0 B
build/editor/style.css 3.85 kB 0 B
build/element/index.js 4.65 kB 0 B
build/escape-html/index.js 735 B 0 B
build/format-library/index.js 7.7 kB 0 B
build/format-library/style-rtl.css 547 B 0 B
build/format-library/style.css 548 B 0 B
build/hooks/index.js 2.13 kB 0 B
build/html-entities/index.js 623 B 0 B
build/i18n/index.js 3.57 kB 0 B
build/is-shallow-equal/index.js 712 B 0 B
build/keyboard-shortcuts/index.js 2.52 kB 0 B
build/keycodes/index.js 1.94 kB 0 B
build/list-reusable-blocks/index.js 3.11 kB 0 B
build/list-reusable-blocks/style-rtl.css 476 B 0 B
build/list-reusable-blocks/style.css 476 B 0 B
build/media-utils/index.js 5.34 kB 0 B
build/notices/index.js 1.79 kB 0 B
build/nux/index.js 3.42 kB 0 B
build/nux/style-rtl.css 671 B 0 B
build/nux/style.css 668 B 0 B
build/plugins/index.js 2.56 kB 0 B
build/primitives/index.js 1.43 kB 0 B
build/priority-queue/index.js 791 B 0 B
build/redux-routine/index.js 2.85 kB 0 B
build/reusable-blocks/index.js 3.06 kB 0 B
build/rich-text/index.js 13.2 kB 0 B
build/server-side-render/index.js 2.77 kB 0 B
build/shortcode/index.js 1.69 kB 0 B
build/token-list/index.js 1.27 kB 0 B
build/url/index.js 4.06 kB 0 B
build/viewport/index.js 1.84 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.22 kB 0 B

compressed-size-action

Copy link
Member

@aristath aristath left a comment

Choose a reason for hiding this comment

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

Makes perfect sense and improves the overall experience a lot! 👍

gutenberg.php Outdated Show resolved Hide resolved
lib/full-site-editing.php Outdated Show resolved Hide resolved
@jameskoster
Copy link
Contributor

The "beta" pill might be useful in other areas of FSE – some of the blocks, for example. That said, a unique style might be more appropriate. Probably doesn't have to block this PR though, it will take a little design work to mock up all the different locations it might appear.

Copy link
Member

@aristath aristath left a comment

Choose a reason for hiding this comment

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

LGTM 👍

@carolinan
Copy link
Contributor

I think it would be a bad move to hide them now without clearly communicating to the WordPress community what the future of widgets and the customizer is.

Hiding them is going to lead to more questions from worried users and developer.
I think hiding them without answering these questions publicly is a bad idea.
I'm not asking you to answer me in this pull request, I am asking that "WordPress", be it the core-editor team or someone else, presents the long term plan for these core features.

  • Even if the menu item is hidden, the customizer can still be accessed, will the options still work?
  • What role will the customizer have with FSE themes?
  • Will it be deprecated, how and when? -If it is not going to be deprecated, why hide them?
  • Will it also be deprecated for non FSE themes? How and When?
  • How do I convert existing customizer options for my updated theme?
  • What about the WordPress options that is only available in the customizer, like the site icon?

The only thing that can alleviate that and clear out some confusion is information.

@youknowriad
Copy link
Contributor Author

Happy to share what we discussed on slack here, the idea here is that since FSE themes don't have widget areas, the widgets screen is useless.

For the customizer, it's a duplicate of the Site Editor screen (similar capabilities), so we need to make sure the Site Editor fills the gaps left by the Customizer. Global styles and Site blocks address most of the site options required for FSE themes and making the switch (hiding the customizer) will allow us to discover gaps we're missing.

@gziolo
Copy link
Member

gziolo commented Nov 2, 2020

I like the idea of disabling the customizer and widget screens to speed up the process of discovering what's really missing in the current implementation of the site editor. The sooner we have all the missing features listed and converted into action items, the better we can plan how the transition could look like.

Base automatically changed from try/auto-enable-fse-for-fse-themes to master November 2, 2020 10:59
youknowriad and others added 2 commits November 2, 2020 12:03
Co-authored-by: Ari Stathopoulos <aristath@gmail.com>
Co-authored-by: Ari Stathopoulos <aristath@gmail.com>
@tomjn
Copy link
Contributor

tomjn commented Nov 4, 2020

I would keep in mind that any proposals for bridging FSE with existing themes, and providing migration paths do not work with this unless you force theme developers to completely abandon customizer controls and widgets all at once. There is no way to migrate functionality piece by piece for theme authors.

This is particularly problematic for themes that are currently heavily widget based. If I activate an FSE theme I lose access to my widgets and can no longer reference them to migrate to block based widgets in an FSE template. I'd suggest a new theme support named legacy-widgets or something to that effect

@AshiqKiron
Copy link

I have three widget-based themes, disabling the widgets will make my themes absolute. And I don't see any clear path to migrate from widgets to Blocks. The only option I have right now is to create a block plugin and tell my users to stop using the widgets and install block plugin. If this is the case, I'm sure pretty other developers will be put off by the lack of communication & no clear migration path.

@youknowriad
Copy link
Contributor Author

Hybrid themes (some templates are regular php templates with widgets... and others are block-based templates) is something that is yet to be worked on.

If we find a decent way to make this kind of theme possible, it's clear that they would need access to widgets and customizer pages. At the moment though, FSE themes are exclusive, and having these screens there is confusing.

@draganescu
Copy link
Contributor

I believe the Site Editor will edit, at least in its initial versions, only block based themes. The Site Editor itself should not be visible if the theme installed is a classic theme. But when the user moves to a block based theme, the Customizer, Widgets and Navigation screens will not be useful at all, because block based themes do not use widget areas, navigation locations, nor do they benefit from the Customizer in any way.

When the user moves to a classic theme they appear right back. At least this is my current understanding of this.

cc @AshiqKiron @tomjn @carolinan

@overclokk
Copy link

What about theme mods? Will they still work? Or will we need to create custom theme options again?

@aristath
Copy link
Member

What about theme mods? Will they still work? Or will we need to create custom theme options again?

They will work. You should have no need for them in an FSE theme, but if you do then they'll work fine.

@overclokk
Copy link

What about theme mods? Will they still work? Or will we need to create custom theme options again?

They will work. You should have no need for them in an FSE theme, but if you do then they'll work fine.

I was thinking on a dynamic theme for example sidebar left or right or no sidebar and so on.

@aristath
Copy link
Member

I was thinking on a dynamic theme for example sidebar left or right or no sidebar and so on.

In an FSE theme there is no such thing as "sidebar". There is no "header", "footer" or anything like that. The concept of theme-options that modify the structure/layout etc of a page no longer applies. Users create their own layouts and page-structure from the editor itself. Instead of a sidebar, they add 2 columns and just set the 2nd column to whatever width they want the "sidebar" to be. Instead of widgets, they add blocks to the column they just created. That's why this change was done for FSE themes... widgets and widget-areas in an FSE theme are irrelevant concepts. An FSE theme can use options from the customizer, but with global-styles and user-built templates there really is no point to it.

@pointydrip
Copy link

I have dozens of sites that use widgets, sidebars and navigation with classic themes. Some sites have 40 different side bars on thousands of posts and pages.

  • What procedure should I be expecting to migrate from a classic theme to an FSE theme?
  • At what point will my classic theme and widgets no longer work?
  • Will WP 5.6 be the last update I can perform?

I feel like there is a lack of transparency on FSE development for something could very well make my work for the last 5 years obsolete and as an independent developer may very well put me out of business...

@youknowriad
Copy link
Contributor Author

Hi @pointydrip I understand your concerns but we're well aware of that, millions of users rely on these features and it's not our goal to prevent you folks from upgrading.

At what point will my classic theme and widgets no longer work?

I expect these will work forever for classic themes so your work won't be lost.

Will WP 5.6 be the last update I can perform?

While some of FSE work is targetted for 5.7, it's still early to say for sure that it will happen there or not. And even if it does, classic themes and your work is not going anywhere. Things will work for you just as they do today and you'll be able to upgrade safely. Disabling customizer and widgets is for the new FSE themes, if your theme is not an FSE them, nothing will change.

What procedure should I be expecting to migrate from a classic theme to an FSE theme?

Migration is something yet to be explored, we have some ideas on the matter, but nothing implemented so far.

@pointydrip
Copy link

pointydrip commented Jan 11, 2021

@youknowriad Thank you for your answers.
I have 2 more comments/questions

  1. If a theme can use Gutenberg and another editor simultaneously is it a reasonable migration strategy to simply start using Gutenburg for new content?
    Eventually most of the content would be more easily converted to a FSE theme or perhaps at some point an FSE hybrid theme would be available.

  2. Widget areas (sidebars): how viable is it for someone to make a plugin that converts a widget area to a block?

I realize that the issue of widgets areas and FSE have been raised many times and I still don't have a clear answer even after installing an FSE theme and trying Gutenberg 9.7.

The main issue is that a widgetized sidebar on a site with thousands of posts/pages where you would you would want to change a widget area across hundreds of posts it is not obvious how that would work in FSE.

Additionally advance content management such as the ability to use the bulk editor to apply widget areas is extremely useful to retroactively change content filters. This is the fundamental basis for using wordpress as a CMS and it does not appear to be addressed in FSE.

A congratulations in order as Gutenberg and FSE are snappy and quick editors compared to 3rd party options and I would very much like to see a transition to Gutenberg for many of my clients.

That being said I think a lot of anxiety that comes from developers is that it has always been a safe bet to follow the lead of wordpress core as most plugins and themes will follow suite, however Gutenberg and FSE don't seem to be to be considering the aspects of CMS that wordpress has always embraced. If they are it it is not obvious how that works or will work...

@aristath
Copy link
Member

Widget areas (sidebars): how viable is it for someone to make a plugin that converts a widget area to a block?

It's very viable. a few months ago I experimented with it successfully (you can see the code here) and even though I never completed the implementation, doing so wouldn't be that difficult.

The main issue is that a widgetized sidebar on a site with thousands of posts/pages where you would you would want to change a widget area across hundreds of posts it is not obvious how that would work in FSE.

In an FSE theme you can edit the templates from the editor. So you wouldn't be adding your "sidebar" in the posts themselves but in the templates. The same template is then reused for all posts and therefore the same content for the sidebars will show for all posts - if you so choose.

@carolinan
Copy link
Contributor

carolinan commented Oct 21, 2021

Does anything actually break if the menu item is added back?
Perhaps the customizer widget and menu can be removed but not the entire customizer?

I feel like unblocking it is easier than answering the questions that no one has the answers to:

I think it would be a bad move to hide them now without clearly communicating to the WordPress community what the future of widgets and the customizer is.

Hiding them is going to lead to more questions from worried users and developer. I think hiding them without answering these questions publicly is a bad idea. I'm not asking you to answer me in this pull request, I am asking that "WordPress", be it the core-editor team or someone else, presents the long term plan for these core features.

  • Even if the menu item is hidden, the customizer can still be accessed, will the options still work?
  • What role will the customizer have with FSE themes?
  • Will it be deprecated, how and when? -If it is not going to be deprecated, why hide them?
  • Will it also be deprecated for non FSE themes? How and When?
  • How do I convert existing customizer options for my updated theme?
  • What about the WordPress options that is only available in the customizer, like the site icon?

The only thing that can alleviate that and clear out some confusion is information.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Type] Experimental Experimental feature or API.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

10 participants