CSS Chat Agenda: July 8, 2021

This is the agenda for the upcoming CSSCSS Cascading Style Sheets. meeting scheduled for Thursday July 8 at 21:00PM UTC.

The meeting will be held in the #core-css channel in the Making WordPress SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/..

  • Housekeeping
  • Discussion: Custom Properties (#49930)
    Continue discussing the workflow for adding Custom Properties to coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress..
  • Open Floor + CSS Link Share

If there’s any topic you’d like to discuss, please leave a comment below!

#agenda

High level feedback from the FSE Program (July 2021)

This post summarizes the top pieces of feedback of the current experience to help inform ongoing efforts after the 5.8 release and as a follow up to a similar post from March. You might notice that some areas of feedback match the original post but that the specifics are different. This is to be expected due to efforts being consolidated around 5.8, causing some feedback to fall in priority. 

Keep in mind that this post is simply a snapshot in time and is inherently going to leave out aspects of the experience that haven’t been the subject of calls for testing yet, for example, Global Styles. It’s also not going to go into great detail about all of the hard work that has gone into addressing these items already, whether through PRs or sharing designs that offer solutions.

If you want a more in-depth look at feedback across the testing calls and a full summary of all issues rather than a sampling, please review the summary posts. If you want to help give feedback, join the calls for testing or test whenever you’d like!

Improve settings experience

This section pulls together everything from feature requests for additional options for different blocks, desire for more control over spacing especially for the Column and Query loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. blocks, general confusion around why certain settings exist in one place and not another (example with the Query loop block, with Color settings, and Columns block), and how to navigate the complexity of settings with more powerful blocks. As a specific example tying in these various items, let’s say you want the Query loop blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. to display 3 posts from a certain categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. and you want to set various colors for different parts of the set of posts. To accomplish that, you would have to interact with the block sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. settings first to set the category before using the block toolbar to select the number of visible posts. To set various colors, you’d have to use List View or navigate through the nested blocks before opening up the block sidebar settings once more to make sure you’re styling what you want.

While work is underway to add in more styling options, normalize block level controls in a more intuitive way, and create more consistent dimension controls, this remains an area ripe for continued iteration to create a more cohesive experience. 

Make editing modes distinct (Site, Template, Query Loop block, etc)

Since the calls for testing began to focus on items related to 5.8 in the last couple of months, understanding how best to navigate template editing mode and the Query Loop block became major focuses of feedback. For example, this partially led to the decision to make the Query Loop block’s post content blocks view only. However, while lots of work has been done to provide clarity around what one is editing and adding the right amount of friction, this was still repeated feedback in nearly every test as an area that needs refinement considering how new this functionality is. For example, sharing information in the sidebar upon entering the template editing experience could go a long way in getting a user acquainted with this new experience. 

Refine Placeholders & Initial Configuration Steps

With new blocks and new features, the initial placeholders and configuration steps become key to get right in both setting expectations and guiding a person to create what they want. This cuts across many aspects of the full site editing project including template editing mode, the Query Loop block, Navigation block, integrated patterns, and more. For example, if one is adding the Query Loop block with the intent to show a collection of posts, it makes sense to display multiple posts at default rather than just one with the latest implementation. Currently, feedback points to work needing to be done to standardize approaches where it makes sense and to improve each experience overall. 

Solidify WYSIWYGWhat You See Is What You Get What You See Is What You Get. Most commonly used in relation to editors, where changes made in edit mode reflect exactly as they will translate to the published page. & Desire for previewing content

Across nearly all of the calls for testing, these two interconnected themes of feedback formed where people missed the ability to easily preview content often due to distrusting the current WYSIWYG experience. Some of the pain points with WYSIWYG have been improved thanks to a change in how layouts and alignments are declared but others are left up to theme authors to resolve, like removing the small margin visible in the editing experience. However, the reliance on previewing remains, especially when more complex interactions arise like previewing a template while editing a post to see how changes might land. 

Ensure reliability and robustness of the the saving process 

Because multi-entity saving (saving multiple aspects at once) is a new WordPress concept and one that underpins many interactions in the site editing experience, this is a key area of feedback to address, especially since the act of saving is so crucial to trust. Generally speaking, feedback falls into the following areas: inconsistent behavior, desire for more functionality, and enhancements to make it clearer what is being saved

Expand abilities of theme blocks

Since many of the tests relied on interacting with the new theme blocks, numerous enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. requests were raised to improve the experience of using each. Rather than listing this under improving the settings experience, this felt worthy of a separate call out as leveling up these individual theme blocks will unlock more creative power in using these new features. Whether folks wanted more styling options in the Post Title block or to easily add pages in bulk to the Navigation block, people are already looking forward to the next version of these various blocks. 

Increase usability of overall experience

This is a “catch-all” category but an important one nonetheless, as it will help various parts of the site editing experience become more intuitive and streamlined. Similar to last time, what follows is a sampling of items both to get a sense of the kinds of issues raised and the spread:

#core-editor, #fse-outreach-program, #full-site-editing, #gutenberg

Editor chat summary: 30 June 2021

This post summarizes the weekly editor chat meeting (agenda here) held on Wednesday, 30 June, 2021, 10:00 AM EDT in Slack. Moderated by @itsjusteileen.

GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 11.0 PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party Release

Gutenberg 11. RC 1 released on 30 June. The link includes release notes.

WordPress 5.8

The first Release Candidate is available. A few quick things from this post:

  • Theme and plugin authors should test and update their readme file.
    For theme authors, @youknowriad has a post on updating your theme for content width to work with global styles and settings.
  • For the ployglots out there, this release marks the Hard String Freeze for 5.8.
  • Everyone is needed for final testing!

This might also be a good time to mention deprecated Block Editor API’s. See @youknowriad posts for more information.

View the complete WordPress 5.8 development cycle.

Key Project Updates

Full Site Editing

The latest call for testing is out: FSE Program Testing Call #8: Thrive with Theme.json. As noted in the post, this round of testing targets developer-centric users in order to bring high impact feedback for theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML., a new tool for extenders. Feedback is requested by 14 July.

Widgets Editor

See the full BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.-based Widgets Editor dev note for a overview description of the new feature.

Mobile

@mattchowning provided the update.


“Shipped”:
Enabled tests for the Cover Block


Coming Soon:

  • Gallery block refactor
  • Tooltips to help with Editor Onboarding
  • Block inserter search

In Progress:

  • Further Editor Onboarding improvements: a help section and a “new” badge for new blocks
  • Adding new integration tests for mobile embed block
  • Global Style Support for colors

Navigation Block

@mkaz provided the update.

  • Working on the overlay background colors for responsive menu and dropdowns is close
  • fixing up the Navigation Editor screen and working on improving tests.

Global Styles

@nosolosw provided the update.

The current focus is polishing the theme.json experience by finding and fixing bugs that are back ported to the Betas/RC. Two things left are:

  • 5779 Extract strings provided via theme.json for translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. in translate.wordpress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/. This depends on a new wp-cliWP-CLI WP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/ https://make.wordpress.org/cli/ release that includes this PR and then updating the metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. infrastructure.
  • 53494 The global styles need to be enqueued in the footer for classic themes that opt-in into per-block asset loading.

The dev notedev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include: a description of the change; the decision that led to this change a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase. for theme.json was published.

Task Coordination

@Zeb is looking for review on his TOC Block PR after fixing the infinite-loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. in the Table of Contents block PR.

@joen

Making a little progress on nav block menu item setup states, with a little summary here. Otherwise making PRs for a variety of small issues, in fact some of them just need your green checkmarks!

@annezazu

Mainly doing FSE Outreach Program wrangling in the form of shipping the theme.json call for testing post with two lovely collaborators (join in on the fun!) and a “How to Test FSE items for 5.8” post shipping today. I plan to turn my attention towards user docs starting at the end of this week through to the release to help out there alongside responding to feedback that comes in. I also want to spend more time in the land of GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ triaging.


@mamaduka

  • Updated documentation for ServerSideRender package.
  • Added check to avoid applying layout configs twice with 5.8.
  • Worked on adding busy state to the template creation modal. I would love some :eyes: on this PR.
  • Pushed improved check for Image Block “switch to cover” action.
  • Testing issues and helping out with PR reviews.

@priethor

In preparation for the next months after 5.8, we are refining the Site Editing scope, closing issues that have been completed for the most part, and creating new overview issues with the upcoming work.

@andraganescu

I am a one person mechanical end to end test runner for the block based widgets editor

Open Floor

What’s the status of FSE in 5.8?

@ironwiller Will there going to be a change at WP 5.8 and have an actual FSE or this one is an ongoing project till the end of the year or even beyond?

@mamaduka Template Mode is on for themes that provide theme.json` file or have special support flag.

@annezazu You can think of full site editing as a collection of features that brings the familiar experience of blocks to all parts of your site. Because it’s a collection of features, it means there’s the option to only release what’s stable and ready in a more gradual way rather than all at once! So… think of it less as an “on/off switch” approach for releasing FSE and more as a steady drip of features being released. In terms of what’s coming, check out this post or you can watch this recent video from another community member that goes over the major features planned. While some items related to FSE are going to be released, like Query Loop Block or Template Editing Mode for classic themes that opt in, this work will be ongoing and is expected to continue beyond this year (my best guess).

Embeds in iFrames Issue

@mrMark Bump to have Embeds looked at e.g. this issue. I added a comment on about embeds being cut off because the iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. isn’t expanding for the content.

Replace white screen on home page

@colorful-tones
Is there a means to refrain from seeing white screen on home page if a theme just has a theme.json in it? I’ve tested with TwentySomething themes and does not seem to happen, therefore wondering if there is a deprecation jig in place for TwentySomething themes only to gracefully fail. Query Monitor shows wp-content/plugins/gutenberg/lib/template-canvas.php being loaded as template on home page. This is with WP 5.8 RC1-51270 and Gutenberg 10.9.1 active. It looks like an issue needs to be created for this topic for general review.

#core-editor, #core-editor-summary, #gutenberg, #meeting-notes

Dev Chat Agenda for July 7, 2021

Here is the agenda for this week’s developer meetings to occur at July 7, 2021 at 20:00 UTC.

Blogblog (versus network, site) Post Highlights

5.8 Schedule Review

  • RC 1 released last week and RC 2 yesterday, now under hard string freeze
  • Working on Field GuideField guide The field guide is a type of blogpost published on Make/Core during the release candidate phase of the WordPress release cycle. The field guide generally lists all the dev notes published during the beta cycle. This guide is linked in the about page of the corresponding version of WordPress, in the release post and in the HelpHub version page. email to pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party/theme authors
  • No further bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. scrubs scheduled, so please highlight issues of concern directly in #core
  • RC 3 in 6 days on Tuesday, July 13th
  • 5.8 release in 13 days on Tuesday, July 20th

Components check-in and status updates

  • 5.8 plans and help needed
  • Check-in with each component for status updates.
  • Poll for components that need assistance.

Open Floor

Do you have something to propose for the agenda, or a specific item relevant to the usual agenda items above?

Please leave a comment, and say whether or not you’ll be in the chat, so the group can either give you the floor or bring up your topic for you accordingly.

This meeting happens in the #core channel. To join the meeting, you’ll need an account on the Making WordPress Slack.

#5-8, #agenda, #dev-chat

X-post: Block-based Themes Meeting Agenda: July 7, 2021

X-post from +make.wordpress.org/themes: Block-based Themes Meeting Agenda: July 7, 2021

A Week in Core – July 5, 2021

Welcome back to a new issue of Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between June 28 and July 5, 2021.

  • 64 commits
  • 52 contributors
  • 65 tickets created
  • 16 tickets reopened
  • 67 tickets closed

Please note that the WordPress Core team released WordPress 5.8 RC 1 last week. Everyone is welcome to help testing the next major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope. of WordPress 🌟

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers are based on the Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.

Code changes

Build/Test Tools

  • Add the 5.8 branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch". to the workflow for testing branches
  • Add the artifacts directory to svn-ignore and .gitignore#53549
  • Replace assertInternalType() usage in unit tests – #53491, #46149
  • Revert [51259-51256,51265] – #53397
  • Split packages and blocks to their webpack configs – #53397

Bundled Themes

  • Correct @since tags for blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. patterns – #52628, #53461
  • Remove mention of “FSE” in Core – #53497
  • Twenty Seventeen: Avoid JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. errors when displaying legacy widgets – #53512
  • Twenty Twenty-One: Add missing documentation for some filters – #52628, #53461
  • Twenty Twenty-One: Ensure Duotone images are displayed correctly in Dark Mode – #53531
  • Twenty Twenty-One: Ensure the dropdown arrow displays for <select> elements when focused – #53560
  • Twenty Twenty-One: Improve documentation per the documentation standards: – #52628, #53461
  • Twenty Twenty: Add missing documentation for some filters – #52628, #53461

Coding Standards

  • Add missing visibility keywords to WP_Theme, WP_Theme_JSON, and WP_Theme_JSON_Resolver tests – #52627
  • Apply an alignment fix after composer format#53375
  • Remove redundant type casting to array in WP_Query::get_posts()#53359

Documentation

  • Add @since tags for WP_Theme class properties – #53399
  • Add @ticket references to some WP_Theme_JSON tests – #52628, #53461
  • Add and correct examples of common names for various dynamic hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.#53581
  • Add missing @since tags for some REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. methods added in 5.8 – #52628, #53461
  • Add missing @since tags for some WP_Theme_JSON methods
  • Adjust wp_dashboard_browser_nag() DocBlockdocblock (phpdoc, xref, inline docs) per the documentation standards – #52628, #53461
  • Correct @see references for hooks in the get_option() description – #52628, #53461
  • Correct @since annotation for WP_Block_Type->view_script#53397
  • Correct description for the $image parameter of the wp_save_image_file filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.#53399
  • Correct description for the upgrader_pre_install filter – #53546
  • Correct documentation for rest_{$post_type}_query and rest_{$taxonomy}_query filters – #53568
  • Corrections and improvements to types used in docblocks for symbols, properties, and filters – #53399
  • Descriptive improvements and corrections for various docblocks – #53399
  • Document common names for dynamic hooks relating to metadata – #53581
  • Document the globals used in WP_REST_Widget_Types_Controller and WP_REST_Widgets_Controller#52628, #53461
  • Document the globals used in some REST API methods – #53399
  • Fix the documentation for the $tests parameter of the site_status_tests filter – #53399, #46573
  • Further Improve documentation for wp_should_load_separate_core_block_assets() – #53505
  • Further type corrections and improvements for various docblocks – #53399
  • Improve documentation for wp_should_load_separate_core_block_assets()#53505
  • Improve documentation for optional parameters in WP_Theme_JSON_Resolver methods per the documentation standards – #52628, #53461
  • Improve documentation for optional parameters in WP_Theme_JSON methods per the documentation standards – #52628, #53461
  • List the expected type first instead of WP_Error in some REST API methods added in 5.8 – #52628, #53461
  • Miscellaneous docblock improvements – #53399
  • Miscellaneous formatting corrections for docblocks – #53399
  • Remove an empty line between @param and @return tags in some newly added REST API methods, per the documentation standards – #52628, #53461
  • Undo the accidental revert of [51299] made in [51300]#53399
  • Update documentation for WP_Widget_Block per the documentation standards – #52628, #53461
  • Update syntax for multi-line comments per the documentation standards – #52628, #53461
  • Update the IRCIRC Internet Relay Chat, a network where users can have conversations online. IRC channels are used widely by open source projects, and by WordPress. The primary WordPress channels are #wordpress and #wordpress-dev, on irc.freenode.net. link from Freenode to Libera.chat – #53590

Editor

  • Ensure global styles are loaded in the footer when loading core assets individually – #53494
  • Ensure the Query block pattern categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. is translatable – #53577
  • Prevent block stylesheets from loading when they do not exist – #53375
  • Remove the experimental experimental-link-color feature – #53175
  • Include the latest fixes targetted for 5.8 RC1 – #53397
  • Package updates including fixes from GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ for WordPress 5.8 RC1 – #53397
  • Remove unnecessary function_exists check in get_the_block_template_html – #53578, #53176

Help/About

  • WordPress 5.8 About Page – #52775

Query

  • Check each post-type’s capabilities when querying multiple post-types – #48556

REST API

  • Allow multiple widgets to be deleted in a single batch request – #53557

Script Loader

  • Add file block assets to the svn-ignore list – #53397
  • Fix PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher notice caused by the viewScript for the core/file block – #53397
  • Revert [51267] – #53397
  • Use the provided block version when registering styles – #53507

Security

  • Add 5.8 to the list of versions receiving security updates

Site Health

  • Improve readability of site titles – #53535

Upgrade/Install

  • Notify users of deactivated plugins during upgrade – #53432
  • Widgets REST API: Fix non-multi widgets not appearing in wp_inactive_widgets – #53534

Props

Thanks to the 52 people who contributed to WordPress Core on Trac last week: @desrosj (9), @walbo (6), @aristath (5), @jorbin (5), @SergeyBiryukov (4), @audrasjb (3), @peterwilsoncc (3), @hellofromTonya (3), @gziolo (3), @nosolosw (2), @swissspidy (2), @isabel_brison (2), @zieladam (2), @pbiron (2), @nalininonstopnewsuk (1), @meher (1), @yvettesonneveld (1), @femkreations (1), @oglekler (1), @alanjacobmathew (1), @milana_cap (1), @courane01 (1), @annezazu (1), @matveb (1), @shaunandrews (1), @javiarce (1), @ryokuhi (1), @Jorbin (1), @Clorith (1), @Boniu91 (1), @ryelle (1), @empatogen (1), @melchoyce (1), @noisysocks (1), @pbearne (1), @jrf (1), @dd32 (1), @ilovecats7 (1), @mcsf (1), @poena (1), @dlh (1), @andraganescu (1), @marybaum (1), @leogermani (1), @jeffpaul (1), @ipstenu (1), @azaozz (1), @youknowriad (1), @chanthaboune (1), @cbringmann (1), @webcommsat (1), and @timothyblynjacobs (1).

Congrats and welcome to our 5 new contributors of the week! @femkreations, @courane01, @javiarce, @empatogen, and @ilovecats7 ♥️

Core committers: @sergeybiryukov (26), @desrosj (20), @johnbillion (8), @youknowriad (3), @jorbin (2), @peterwilsoncc (2), @ryelle (1), @clorith (1), and @noisysocks (1).

#5-8, #week-in-core

Editor Chat Agenda: 7 July 2021

Facilitator and notetaker: @paaljoachim

This is the agenda for the weekly editor chat scheduled for Wednesday, July 7, 2021, 04:00 PM GMT+1.

This meeting is held in the #core-editor channel in the Making WordPress SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/..

  • Gutenberg 11.0 RC
  • WordPress 5.8 (Project board)
  • Monthly Plan for June 2021 (July update will be added soon) and key project updates:
    • Global Styles.
    • BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. based WidgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. Editor.
    • Navigation Block & Navigation Editor.
    • Full Site Editing.
    • Mobile Team.
  • Task Coordination.
  • Open Floor.

If you are not able to attend the meeting, you are encouraged to share anything relevant for the discussion:

  • If you have anything to share for the Task Coordination section, please leave it as a comment on this post.
  • If you have anything to propose for the agenda or other specific items related to those listed above, please leave a comment below.

#agenda, #core-editor, #core-editor-agenda, #meetings

WordPress 5.8 Field Guide


UPDATE on 12 July 2021: The Miscellaneous block editor API additions in WordPress 5.8 dev notedev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include: a description of the change; the decision that led to this change a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase. was added to the BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. Editor section.


Whether you are a WordPress website user, builder, or developer, WordPress 5.8 brings exciting changes and a hint of even more goodies coming in WordPress 5.9. But we’re getting ahead of ourselves; let us take a look at what to expect in when 5.8 is released.

The WordPress 5.8 release cycle is different from previous ones in several ways, but the release squad navigates it with ease, even though not entirely without pressure. One of these differences is a decision to include an unplanned Beta 4 into the release cycle. This is not such a surprise, given that there are 96 enhancements and feature requests, 170 bug fixes and 24 other blessed tasks, which brings us to 290 Trac tickets in total.

In this Field GuideField guide The field guide is a type of blogpost published on Make/Core during the release candidate phase of the WordPress release cycle. The field guide generally lists all the dev notes published during the beta cycle. This guide is linked in the about page of the corresponding version of WordPress, in the release post and in the HelpHub version page., you will notice what is relevant to you and your users among the many improvements coming in 5.8.

Block Editor

The block editor moves onward with regular releases. GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ version 10.7 is bundled with WordPress 5.8; that totals eight Gutenberg releases (versions 10.0, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, and 10.7) all merged into this WordPress release (as the related Gutenberg handbook page makes clear)! Bug fixes and performance improvements from Gutenberg versions 10.8 and 10.9 are also part of 5.8.

The WordPress 5.8 Beta 1 post highlights a lot of the version’s new features and improvements:

  • New site editing blocks
  • The powerful query block
  • The block List view
  • Duotone image effects
  • Updates to existing blocks
  • Recommended patterns

As well, those recommendations integrate with the Pattern Directory on WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/, template editor, theme.json, and blocks in widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. areas among other changes.

In the block editor-related dev notesdev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include: a description of the change; the decision that led to this change a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase. below are important details on how theme.json delivers editor style control and associated Global Settings and Global Styles, plus:

  • Blocks in widget areas
  • block.json as canonical way to register block styles
  • deprecation of filters and introduction of context-aware replacements
  • Removal of previously deprecated EditorGlobalKeyboardShortcuts component, hasUploadPermissions selector, and hidden Subheading block
  • The iframed template editor portion of Full Site Editing
  • Block-styles loading enhancements

Media

Amongst all Media changes, the highlight is support for the WebP image format. Accompanied by new image_editor_output_format filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. (see #52867), it will set foundation for a real performance boost. You will also notice some UIUI User interface improvements, such as replacing infinite scroll with AJAX response (#50105 and #40330) and copy-link button on media upload screen (#51754).

Plugins

Changes in the Plugins component aim to make pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party developers lives easier. From better docs search (#50734) and standardizing hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. terminology (#50531) to ability to mark plugins as unmanaged (#32101) and avoid overwriting plugin files caused by update conflicts.

REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.

REST API changes are mainly focused on Widgets and sidebars but there is also a new operator for taxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. queries within post collections, support for the eagerly awaited AND comparison, which allows posts meeting all passed criteria are matched (#41287).

Site Health

Amongst the UI fixes, Site Health changes bring new actions for extending the navigation in the Site Health screen (#47225). You will also find new info provided by Site Health via a list of the supported file types for the active image editor (#53022).

Themes

Across the Themes changes you will find two new action hooks, delete_theme and deleted_theme (#16401), a few UI improvements such as clearly showing if a theme is a child themeChild theme A Child Theme is a customized theme based upon a Parent Theme. It’s considered best practice to create a child theme if you want to modify the CSS of your theme. https://developer.wordpress.org/themes/advanced-topics/child-themes/. (#30240), update counter in adminadmin (and super admin) menu item (#43697), and removal of “Featured” tab in Add Themes screen (#49487).

Also, older bundled themes are refreshed with some really nice block patterns for your pleasure and inspiration.

Other Developer Updates

There are even more goodies in 5.8! Read through the dev notes below to see details on how Internet Explorer 11 support is being dropped as well as assorted changes to the Bootstrap/Load, Build/Test Tools, Formatting, General, Media, Posts/Post Types, RevisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision., Themes, and Users components.

Alongside the dev notes below, also worth noting is that work has continued during the 5.8 release cycle to increase the compatibility with PHP8 and its new features. Please continue to test your code against PHP8 as we all work towards raising the entire WordPress ecosystem compatibility with PHP8, thank you!

But Wait, There is More!

5.8 offers so much more! Over 170 bugs, 96 enhancements and feature requests, and 24 blessed tasks have been marked as fixed in WordPress 5.8.

Here are a few that haven’t been highlighted:

  • Build/Test Tools: Remove @babel/polyfill in favor of core-js/stable, requires explicit addition of regenerator-runtime as script dependency if IE11 support is still required (#52941).
  • Bundled Theme: Add Block Patterns to Twenty Ten to Twenty Fifteen default themes (#51107, #51106, #51105, #51104, #51103, #51102).
  • Comments: comments_pagination_base missing in get_comment_reply_link() function (#51189).
  • Comments: Comments list’s link should point to an actual article (#52353).
  • Embeds: Process embeds for block widgets (#51566).
  • Emoji: Bump Twemoji from 13.0.1 to 13.1.0 (#52852).
  • External Libraries: Bump jQuery from 3.5.1 to 3.6.0 (#52707).
  • External Libraries: Bump Moment.js from 2.27.0 to 2.29.1 (#52853).
  • External Libraries: Bump Requests from 1.7.0 to 1.8.1 (#53101 and #53334).
  • External Libraries: Bump Underscore from 1.8.3 to 1.13.1 (#45785).
  • Media: Remove infinite scrolling behavior from the Media grid (#50105).
  • Media: Add a copy-link button at the media upload page (#51754).
  • Menus: Add ability to delete multiple menu items (#21603).
  • Revisions: a new dynamic filter to specify post type for number of revisions to save, wp_{$post->post_type}_revisions_to_keep (#51550).
  • Role/Capability: user_can() changed for exist capability for anonymous users (#52076).
  • Upgrade/Install: Remove parsing of readme.txt files from validate_plugin_requirements() (#48520).
  • Upgrade/Install: Fatal error during update to 5.8 of a site with an active Gutenberg plugin (version less than 10.7) (#53432).
  • Widgets: Make sure WP_Widget constructor creates a correct classname value for a namespaced widget class (#44098).
  • And much, much more!

Please, test your code. Fixing issues that your code has with WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. helps you and millions of WordPress sites.

Props to @jeffpaul and @desrosj for contributing to this guide.

#5-8, #field-guide

CSS Chat Agenda: July 1, 2021

This is the agenda for the upcoming CSSCSS Cascading Style Sheets. meeting scheduled for Thursday July 1 at 21:00PM UTC.

The meeting will be held in the #core-css channel in the Making WordPress SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/..

  • Housekeeping
  • Discussion: Custom Properties (#49930)
    Continue discussing the workflow for adding Custom Properties to coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress..
  • Open Floor + CSS Link Share

If there’s any topic you’d like to discuss, please leave a comment below!

#agenda

Block-styles loading enhancements in WordPress 5.8

WordPress 5.8 improves the way we load blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.-styles by introducing 2 new features:

  • Load styles only for rendered blocks in a page
  • Inline small styles

Only load styles for used blocks

This is an opt-in, non-breaking change. Using the should_load_separate_core_block_assets filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output., developers can opt-in to this feature:

add_filter( 'should_load_separate_core_block_assets', '__return_true' );

Prior to WordPress 5.8, styles for all blocks were included in a style.css file that gets loaded on every page. By opting-in to separate styles loading, the following will happen:

  • The wp-block-library stylesheet changes: Instead of loading the wp-includes/css/dist/block-library/style.css file which contains all styles for all blocks, this handle will now load the (much smaller) wp-includes/css/dist/block-library/common.css file, which contains generic styles like the default colors definitions, basic styles for text alignments, and styles for the .screen-reader-text class.
  • Styles for blocks will only get enqueued when the block gets rendered on a page.

The above changes will only apply to the frontend of a site, so all editor styles will continue to work as they did before.

The difference between block themes and classic themes

Block themes

In a block theme, blocks get parsed before the <head> so we always know which blocks will be present prior to rendering a page. This makes it possible to add the block styles to the <head> of our document.

Classic themes

In a classic, php-based theme, when a page starts to render, WordPress is not aware which blocks exist on a page and which don’t. Blocks gets parsed on render, and what that means is that block-styles don’t get added in the <head> of the page. Instead, they are added to the footer, when print_late_styles() runs.

If you have an existing theme and you want to opt-in to this improvement, you will need to test your theme for style priorities. Opting-in to separate styles loading in a classic theme means that the loading order of styles changes. Block styles that used to be in the head will move to the footer, so you will need to check your theme’s styles and make sure any opinionated styles you add to blocks have a higher priority than coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. styles.

Taking advantage of separate styles loading to add pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party/theme styles to blocks

It is possible to use this new feature to attach styles to existing block-styles, by inlining them.

If your theme adds styles to blocks, instead of loading a single file containing all styles for all blocks, you can split styles and have a single file per-block. This will allow you to only load your theme’s (or plugin’s) block styles only when a block exists on a page.

The function below is an example implementation of how to do that, with some additional tweaks:

  • It works both in WordPress 5.8 and previous versions
  • It has a fallback in case the should_load_separate_core_block_assets filter is disabled
  • It adds styles both in the editor and frontend
  • Checks for specific editor block styles.

Feel free to use this as an example, tweaking it to suit your needs and implementation.

/**
 * Attach extra styles to multiple blocks.
 */
function my_theme_enqueue_block_styles() {
	// An array of blocks.
	$styled_blocks = [ 'paragraph', 'code', 'cover', 'group' ];

	foreach ( $styled_blocks as $block_name ) {
		// Get the stylesheet handle. This is backwards-compatible and checks the
		// availability of the `wp_should_load_separate_core_block_assets` function,
		// and whether we want to load separate styles per-block or not.
		$handle = (
			function_exists( 'wp_should_load_separate_core_block_assets' ) &&
			wp_should_load_separate_core_block_assets()
		) ? "wp-block-$block_name" : 'wp-block-library';

		// Get the styles.
		$styles = file_get_contents( get_theme_file_path( "styles/blocks/$block_name.min.css" ) );

		// Add frontend styles.
		wp_add_inline_style( $handle, $styles );

		// Add editor styles.
		add_editor_style( "styles/blocks/$block_name.min.css" );
		if ( file_exists( get_theme_file_path( "styles/blocks/$block_name-editor.min.css" ) ) ) {
			add_editor_style( "styles/blocks/$block_name-editor.min.css" );
		}
	}
}
// Add frontend styles.
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_block_styles' );
// Add editor styles.
add_action( 'admin_init', 'my_theme_enqueue_block_styles' );

Inlining small assets

In some cases small stylesheets get loaded on WordPress sites. These stylesheets require the browser to make an additional request to get an asset, and while they benefit from caching, their small size doesn’t justify that extra request, and performance would improve if they were inlined.

To that end, an inlining mechanism was implemented. This is an opt-in feature, and can be handled on a per-stylesheet basis. Internally, only assets that have data for path defined get processed, so to opt-in, a stylesheet can add something like this:

wp_style_add_data( $style_handle, 'path', $file_path );

When a page gets rendered, stylesheets that have opted-in to get inlined get added to an array. Their size is retrieved using a filesize call (which is why the path data is necessary), and the array is then ordered by ascending size (smaller to larger stylesheet). We then start inlining these assets by going from smallest to largest, until a 20kb limit is reached.

A filter is available to change that limit to another value, and can also be used to completely disable inlining.

To completely disable small styles inlining:

add_filter( 'styles_inline_size_limit', '__return_zero' );

To change the total inlined styles limit to 50kb:

add_filter( 'styles_inline_size_limit', function() {
	return 50000; // Size in bytes.
});

Inlining these styles happens by changing the src of the style to false, and then adding its contents as inline data. This way we avoid backwards-compatibility issues in themes and any additional styles attached to these stylesheets using wp_add_inline_style will still be printed.

Please note that if a stylesheet opts-in to get inlined, that is no guarantee that it will get inlined.

If for example on a page there are 30 stylesheets that are 1kb each, and they all opt-in to be inlined, then only 20 of them will be converted from <link rel="stylesheet"/> to <style> elements. When the 20th stylesheet gets inlined the 20kb limit is reached and the inlining process stops. The remaining 10 stylesheets will continue functioning like before and remain <link> elements.

If your theme opts-in to the separate block-styles, core block styles by default have path defined so they can all be inlined.

Props @sergeybiryukov for proofreading this dev-note.

#5-8, #dev-notes