The WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. development team builds WordPress! Follow this site for general updates, status reports, and the occasional code debate. There’s lots of ways to contribute:
Found a bugbugA 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.?Create a ticket in our bug tracker.
A performance analysis from mid-2021 had discovered that the lazy-loading implementation from WordPress had been causing a slight performance regression in the Largest Contentful Paint metric (LCP). As outlined in the referenced post, the reason for that was that images and iframes in the initial viewport would be marked to lazy-load them, since the WordPress implementation would mark nearly all images with loading="lazy". The aforementioned post then further explains that this can be improved by skipping addition of loading="lazy" for the first content image or iframeiframeiFrame 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., which in the vast majority of cases will appear within the initial viewport. WordPress can only make educated guesses around that and not be 100% certain, but an analysis taking into account 50 popular themes showed that the enhancementenhancementEnhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. brought LCP improvements across the board, up to 30% faster page load. WordPress 5.9 now comes with this refinement implemented, leading to the corresponding enhanced LCP performance.
How it works
So far, fine tuning which images and iframes should be lazy-loaded or not has been possible using the wp_img_tag_add_loading_attr and wp_iframe_tag_add_loading_attr filters, and these are still available as before. However, to improve the performance out-of-the-box without requiring a developer to customize the behavior, WordPress will now skip the very first “content image or iframe” on the page from being lazy-loaded. The term “content image or iframe” here denotes any image or iframe that is found within content of any post in the current main query loopLoopThe 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. as well any featured imageFeatured imageA featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts. of such a post. This applies to both “singular” and “archive” content: In a “singular” context the first image or iframe of the (only) post is not lazy-loaded, while in an “archive” context the first image or iframe of the first post in the query is not lazy-loaded.
Customizing the behavior
The approach of not lazy-loading the first content image or iframe enhances LCP performance correctly for the majority of themes, which use a single-column layout for post content. For themes with alternative layouts such as multi-column, a new wp_omit_loading_attr_thresholdfilterFilterFilters 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. is now available and can be used to change how many of the first images/iframes should be skipped from being lazy-loaded – per the above, the default is 1. It is recommended for theme authors to use this filter in cases where based on the layout it is likely to have more than one content image/iframe in the initial viewport.
For example, a theme that uses a three-column grid of posts in its archives could leverage the filter to override the threshold to 3 on archive pages, which would then result in the first three content images/iframes not being lazy-loaded. The following code snippet illustrates what that could look like:
The refinement of the lazy-loading implementation should notably improve LCP performance for most sites that rely on it, while not having adverse effects for sites where the default heuristics described above do not apply to. That is only a solid starting point though. In the future, specifically with the more semantic content specification that blockBlockBlock 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 themes will facilitate, we will be able to further fine tune the lazy-loading implementation by using the available block information.
For more background information on the changes described above, see #53675.
Here’s some aggregate data for 2021 about WordPress CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. contribution on TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.. Please note: it only include code contributions and it does not include contributions on GitHubGitHubGitHub 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/ repositories like GutenbergGutenbergThe 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/.
The raw data for this post are on this public spreadsheet. You might find that easier to read if you have low vision or colorblindness; the graphics below are a snapshot pulled together to include as much information as possible in this blogpost.
General Trac overview
In 2021, the WordPress Core team shipped 1852 commits. 2797 tickets were opened, 2732 tickets were closed, and 408 were reopened.
Also, 2572 people contributed to WordPress source code using Trac, and 305 people made their very first contribution to WordPress Core ♥️
Jan
Feb
Mar
Apr
May
Jun
Jul
aug
Sep
Oct
Nov
Dec
Total
Commits
62
175
110
97
142
286
174
175
103
57
327
144
1852
Tickets closed
236
315
372
147
182
355
248
210
157
88
271
151
2732
Tickets reopened
26
33
45
21
25
37
77
36
22
19
31
36
408
Tickets created
200
280
371
177
197
320
288
297
161
126
190
190
2797
New contributors
14
43
14
22
35
37
15
12
18
14
71
10
305
Contributors
120
229
165
117
280
400
154
132
156
90
555
174
2572
This chart can be scrolled horizontally
Check out the Trac timeline in the graph below:
Here’s how many props and new contributors the Core project had per month. The most prolific month was November, in the WordPress 5.9 betaBetaA pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. cycle, followed by June (WP 5.8 beta cycle).
Components activity
How did 2021’s commits break out by Core Component?
The most prolific components were:
Build/Test Tools with 310 commits (17% of all listed commits)
Docs with 198 commits (11% of all listed commits)
Editor with 188 commits (10.5% of all listed commits)
Bundled Themes with 144 commits (8% of all listed commits)
Coding Standards with 140 commits (8% of all listed commits)
Then comes Media, REST APIREST APIThe 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/., Code Modernization, External Librairies, Administration, Upgrade/Install, Site Health and Posts/Post Types. The other components each had fewer than 30 commits this year.
Data fetched from WordPress.orgWordPress.orgThe 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/ profiles
The data below comes from matching contributors’ usernames, as mentioned in Trac props, with their profiles on WordPress.org. One caveat: usernames that did not match a profile on dotorg, or that left blank their country/company information, filled in non-exploitable info got ignored. After all, “The Universe” or “The place to be” are not known countries 😆
Contributions by country
The next graph shows the number of props received by country. The top eight countries, based on the number of props received, are these:
United States with 1142 contributions
France with 266 contributions
Russia with 227 contributions
The Netherlands with 225 contributions
India with 219 contributions
Australia with 211 contributions
United Kingdom with 112 contributions
Canada with 102 contributions
Contributors (people) by country
In 2021, people from more than 56 countries contributed to WordPress Core.
The top eight countries by contributions, expressed as the number of props received, are:
United States with 155 people
India with 58 people
United Kingdom with 34 people
France with 26 people
Germany with 23 people
The Netherlands with 20 people
Canada with 16 people
Australia with 15 people
Contributions by company
In 2021, people from at least 236 companies contributed to WP Core.
These companies each contributed (well, their people did) to more than 50 commits:
Automattic with 785 contributions
Yoast with 379 contributions
Whodunit with 215 contributions
Advies en zo with 191 contributions
Bluehost with 146 contributions
Human Made with 131 contributions
Google with 87 contributions
iThemes with 73 contributions
Dekode Interaktiv with 52 contributions
Contributors (people) by company
The graph below is also interesting, because it shows that a huge number of companies have only one contributor—or a very few contributors. The exceptions are Automattic, with 85 core contributorsCore ContributorsCore contributors are those who have worked on a release of WordPress, by creating the functions or finding and patching bugs. These contributions are done through Trac. https://core.trac.wordpress.org. on Trac in 2021, Yoast (18 contributors) and 10up. Only those three companies had more than ten people credited on Trac in 2021.
What did 2021 hold for Core Committers?
33 Core Committers committed code to the WordPress SVNSVNSubversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. repository this year:
Prior to WordPress 5.9 the only way to work with inner blockBlockBlock 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. was to use the <InnerBlocks /> component. One downside of this approach is that in the editor this creates additional DOM nodes that wrap the markup of the inner blocks. This makes it more difficult to style these inner blocks areas to match what the enduser will see on the site.
With WordPress 5.9 we’re introducing a new reactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. hook called useInnerBlocksProps that allows you to change this and take more control over the markup of inner blocks areas. The useInnerBlocksProps is exported from the @wordpress/block-editor package same as the InnerBlocks component itself and supports everything the component does. It also works like the useBlockProps hook introduced with apiVersion: 2 in WordPress 5.6.
To use the hook, take the object returned from calling the hook and spread it onto the host element you want to render the inner blocks into. For example:
The above code will render to the following markup in the editor:
<section>
<div>
<!-- Inner Blocks get inserted here -->
</div>
</section>
The hook also accepts two arguments:
The first argument accepts an object containing additional props that are added to the element in the dom. For example, to add a custom class name to the inner blocks area you pass { className: 'my-class' } as the first argument.
The second argument is also an object and can contain any properties to control the behavior of the inner blocks area. It accepts all options like allowedBlocks, template, templateLock, renderAppender, etc. You can find the full list of supported properties in the InnerBlocks props documentation
To save inner blocks content there is a special variant of the hook, this is similar to the component-based approach that uses <InnerBlocks.Content /> in the save method of a block. For hooksHooksIn 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., you add .save to the end of the hook like so:
When you use the useInnerBlocksProps.save() hook it only accepts the first parameter, these are the options you want to add to the container element.
Why use hooks?
The hooks allow for new options and nice enhancements. For example, you can take the object returned from the useBlockProps hook—these contain the properties for the block’s wrapping container—and pass them to the useInnerBlocksProps hook. This reduces the number of elements we need to create. For example:
<section>
<!-- Inner Blocks get inserted here -->
</section>
Another benefit to using the hook approach is using the returned value, which is just an object, and deconstruct to get the react children from the object. This property contains the actual child inner blocks thus we can place elements on the same level as our inner blocks.
function BlockEdit(props) {
const blockProps = useBlockProps();
const { children, ...innerBlocksProps } = useInnerBlocksProps( blockProps );
return (
<section {...innerBlocksProps}>
{ children }
<!-- Insert any arbitrary html here at the same level as the children -->
</section>
);
}
<section>
<!-- Inner Blocks get inserted here -→
<!-- The custom html gets rendered on the same level -->
</section>
Welcome back to a new issue of Week in CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between December 20 and December 27, 2021.
TicketticketCreated 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
Administration
Add “File” to Theme/PluginPluginA 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 Editor menu names and relocate “Plugin File Editor” to Tools for blockBlockBlock 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. themes – #54382
Make sure the $customize_url variable is always defined in the adminadmin(and super admin) menu – #54682
Application Passwords
Show HTTPSHTTPSHTTPS is an acronym for Hyper Text Transfer Protocol Secure. HTTPS is the secure version of HTTP, the protocol over which data is sent between your browser and the website that you are connected to. The 'S' at the end of HTTPS stands for 'Secure'. It means all communications between your browser and the website are encrypted. This is especially helpful for protecting sensitive data like banking information. required message without filtering when not enabled or not in local environment – #53658
Restore the httpsURLURLA specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org for browserify-aes – #54487
Separate the tests for recommended PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher and MySQLMySQLMySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/. versions in readme.html – #41490
Bundled Themes
Twenty Twenty-Two: Sync updates from GitHubGitHubGitHub 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/ for BetaBetaA pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 4 – #54318
Update the SimplePie library to version 1.5.7 – #54659
Update the SimplePie library to version 1.5.8 – #54659
General
Fix 'rel' argument in Tests_Functions_wpListBookmarks test datasets – #53839
Login and Registration
Use secondary button style for the Language switcher – #54692
Add a filterFilterFilters 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. to allow to disable the Login screen language dropdown – #54675
Plugins
Escape the WordPress.orgWordPress.orgThe 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/ plugin page URL in the Plugin Installation modal – #54362
REST APIREST APIThe 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/.
Support . in theme directory names in WP_REST_Global_Styles_Controller, WP_REST_Templates_Controller, and WP_REST_Themes_Controller – #54596
Script Loader
Skip getting 'can_compress_scripts' option in script_concat_settings() during install – #54634
Toolbar
Show the Customize link on front end when using a block theme if any plugins use the CustomizerCustomizerTool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. – #54683
This week’s meeting is being skipped due to anticipated low attendance at the end of year. Meetings will resume on January 5th, 2022. You’re encouraged to use this time to help test WordPress 5.9 Beta 4. For specific steps and areas to test, you can follow this post on how to test 5.9 features.
If you have anything you’d like to discuss or share asynchronously though, please share in the comments of this post. This includes the following:
If you have an update for the main site editing projects.
If you have anything to share for Task Coordination.
If you have anything you’d like to raise that typically would be discussed in the Open Floor section.
@paaljoachim and myself will follow up on any open ended questions or topics left on this thread.
Functionality to customize color for selected words (GSS related).
Fixes
Heading blockBlockBlock 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. newline when splitting issue.
Upgrade to ReactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. Native v0.66.
Finalizing GSS Font size and line height.
Improving reliability of the mobile translations pipeline.
In PR 37348 docs were refactored to use JSX/Plain as the toggles for code examples. We don’t need to limit examples to ES5 anymore, so this makes it clearer the difference. Documentation contributor guide was also updated for guidance.
PR 36183 adds generated coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. block documentation from the block.jsonJSONJSON, 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. files. Published here. The item to note is if you change a block.json in a core block, you will need to run npm run docs:build. Your failing commit will tell you have a local change.
Take a look at WP 5.9 project board for docs and dev notes, I’m reached out to those listed. We have a goal of getting notes published before RC1, but with late fixes and holidays we won’t have them all. So, if you have any to write, try to make it a priority when you return in the new year.
I’ve been working on WP 5.9 bugbugA 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. fixes for Site Editor and Template Mode.
Kudos to @mikachan for becoming a member of the GutenbergGutenbergThe 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/ team
During 2021, a group of contributors worked to update the WordPress updaters and add some features to make auto-updates safer and dependencies more reliable.
Outcomes 1 and 2 – Make sure the zips download and unpacking are safe and create a mechanism to rollback pluginPluginA 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 updates in case of failure
For the feature ready to be shipped with WordPress 6.0, the discovered issue with Chassic/Vagrant should be resolved. Outreach to hosting companies needs to be done to ensure production environments will behave as expected.
Help required – Hosting companies
Would it be possible to get a hosting company to set up different environments to test the patchpatchA special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. in multiple scenarios? Including testing on shared servers from hosting providers who aggressively throttle resources.
Outcome 3 – Have managed updates (database migrations)
Evaluate if this is beneficial for plugin developers and create user stories before writing code, to make sure the solution addresses a specific, shared problem.
Outcome 4 – Create a unified JSONJSONJSON, 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. convention for requirements and dependencies
After a lot of conversations, the contributors moved away from a JSON file in favor of a “Requires Plugins” headerHeaderThe header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. based on feedback to this PR. Then, they focused on adminadmin(and super admin)UIUIUser interface improvements using that header to solve what appears to be the most common use case: protect the user from fatal errors when installing a plugin without the required dependencies and guide them to complete the installation.
Looking back at the conversations (TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. and SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/.) it looks like there is not enough clarity on the best possible method to solve the user issue, or what “dependencies” mean (soft vs. hard dependencies).
For plugin developers, the main issue is to avoid different plugins introducing implementations to check for the existence of dependencies and take appropriate actions. This is, in fact, something that is already happening. The problem is solved by each plugin developer. Would it be possible to solve it with a unified convention?
For end-users, the issue is with add-ons. For them to work, they need another plugin to be activated. If plugin and theme developers don’t properly check for the existence of plugins before using them, there is a risk of getting fatal errors on the user site.
Next steps
@peterwilsoncc suggested proposing a feature project. Right now, there is a Google Document with some notes about the solutions but the problem and the why are missing. This project is not tied to a release right now since it is still in the discovery phase.
Evaluate the problem from the point of view of plugin developers. Is it beneficial to have a unified solution for CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. or does it not make a difference? Help from the plugin team and plugin authors is needed.
Write the user stories from the end-of-user point of view.
Write a proposal for a feature project with the findings from the two explorations.
Do you want to help?
If you want to help, please join the #core-auto-updates chats, Tuesdays at 5PM UTC in 2022.
Start of the Dev Chat meeting in the Make WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.slackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/..
The WordPress 5.9 BetaBetaA pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 4 has landed. Please download and test! Thanks to everyone who has been involved in the release so far and getting the Beta 4 out the door.
A Week in Core. Three new contributors to core this week – welcome to them all. The next New Contributor Meeting for core is scheduled for 12 January 2022 at 19:00 UTC. If you have any questions on contributing to core before that, just bring them up here in #core any time outside of any ongoing meeting, or in the open floor section of the weekly dev chat, and someone should follow up.
Please continue to share the Help test WordPress 5.9 features. This replaces the ongoing call for FSE testing promotions until after 5.9 is released. Thanks @annezazu
The annual community survey closes next week on December 30, 2021. Still time to complete it.
Component Maintainers update
Build/Test Tools Component
Update via @sergeybiryukov: Some enhancements were made to the unit testunit testCode written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. suite:
Reduce the use of unnecessary randomness in tests to increase the overall reliability of the tests. See ticketticketCreated for both bug reports and feature development on the bug tracker.#37371 for more details.
Remove an assertion in filter_rest_url_for_leading_slash(). This assertion could mask the fact that some other tests don’t perform an assertion. See ticket #54661 for more details.
Date/Time, General, I18Ni18nInternationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill., Permalinks
Update from @nalininonstopnewsuk: For the Quick/ Bulk Edit component, we are continuing to work through and reading all the previous materials in the background while the primary focus is on 5.9. We want to run a bugbugA 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. scrub on the tickets the week after 5.9 is out.
About / Help page component
Update via @webcommsat: More updates have been done this week on the text and Figma. Will update the ticket today.
You can also join the collaborations cross-team on social media posts on the release features.
Open Floor
Proposal for an enhancementenhancementEnhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. ticket.
Will raise a ticket and provide a UIUIUser interface draft. Design input suggested.
Discussion suggested moving the ticket to 6.0.
2. Request to add thoughts on the Performance Team GitHubGitHubGitHub 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/ Issues and Projects.
@maksimkuzmin suggested: Most of the times bespoke themes built relying on page templates to set up specific page to the specific type of page. E.g. Search Page is bound to the page-search.php template in the code. The major lack of functionality is to have a function that will quickly retrieve page(s) by the given template name. Without building a WP Query, etc. Sort of get_page_by_template( $template_file ).
This enhancement will further be discussed and potentially reconsidered in a pre-existing ticket: #16264.
4. Bug report potentially related to 5.9
@afragen: FYI, posted bug report and PR for #54682, believed to be 5.9 related.
Next meeting
Dev Chat will take place next week, Wednesday 29 December 2021 at 20:00 UTC in the Make WordPress Core Slack for a quick check-in.
“What’s new in GutenbergGutenbergThe 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/…” posts (labeled with the #gutenberg-newtagtagA directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.)) are published following every Gutenberg release on a biweekly basis, discovering new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Full Site Editing project.
If you observe the Gregorian Calendar, New Year’s Eve is fast approaching, which means that the time has come for the next release of Gutenberg!
Gutenberg 12.2 has just been released! It’s the last minor Gutenberg release in 2021. This release improves compatibility with the upcoming WordPress 5.9 release and blockBlockBlock 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. themes. Also, it brings new features, code quality improvements, and bugbugA 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. fixes. You can find the release highlights below.
Seamless navigation between the Site Editor and the Template List
Gutenberg 12.2 takes the Template List one step beyond, improving its user experience and performance. Thanks to its new client-side routing, WordPress doesn’t need to reload the page when navigating between the Site Editor and the Template List, reducing the time spent rendering unneeded HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. code.
Improvements to post comments
Starting with Gutenberg 12.2, the Comments Query Loop block is now able to display nested comments. This improves user experience as it is now much easier to understand if a comment responds to another comment or is just a first-level comment.
Also, the new Comments Pagination Numbers block allows displaying page numbers inside the Comments Pagination block, which in turn can be used inside the Comments Query Loop block. This improves the UIUIUser interface because users can quickly navigate the comments using the page number. Also, the pagination in the Comments Query Loop block now works similar to the pagination for posts.
A new home for border controls
Although lots of blocks are already taking advantage of border supports, this release switches border supports to the ToolsPanel, and sets which border properties are displayed in the ToolsPanel by default. The ToolsPanel, first introduced in Gutenberg 11.3, offers progressive discovery options for those provided through block supports, improving the user experience and consolidating the sidebarSidebarA 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. UI.
New font size labels in the FontSizePicker component
Gutenberg 12.2 improves the way font sizes are displayed in the sidebar by using a sequence of numbers (1, 2, 3, 4, 5) as labels for the font sizes. These simplified labels can accommodate use cases with complex CSSCSSCascading Style Sheets. values, helping users understand the available font sizes.
Improved color picker
More components are being iterated in this release. In an effort to reduce sidebar clutter and improve the design tools user experience, all blocks, including those that use custom color implementation, can now take advantage of the new dropdown-based color picker. This improved UI is easier to use, especially when editing a few colors back-to-back.
Preview for Block Styles in the WidgetWidgetA 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
While Gutenberg 12.0 introduced block styles preview on hover for the Block Editor, this release brings this functionality to the Widgets Editor, too. It’s now possible to preview style variations in the Widgets Editor when editing blocks that support this (e.g., Image, Table, Button blocks) by hovering or focusing over the style name, for full accessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) support.
Changelog
Enhancements
Block Library
New block: Add Comments Pagination Numbers block. (36890)
Comments Query LoopLoopThe 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.: Improve context handling in inner blocks. (37196)
Image: Reflect media deletion in the editor. (35973)
Navigation:
Add navigation blocks post-processing after migrationMigrationMoving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. from menu items. (36950)
Refactor modal padding to be simpler and more flexible. (37323)
Remove Navigation Menus from the Appearance menu. (37212)
Refactor handling of padding for group and column blocks. (37356)
Template Part: Add actions that fire during the loading process of block template parts. (36884)
Styles and design tools
Add the Welcome Guide option to the More Global Styles Actions dropdown. (37180)
Make the Blocks section more distinguishable. (37293)
Move the Edit colors button to a standard menu item. (36842)
Move Duotone palette to the bottom of global styles gradients. (37253)
Border controls: display border properties in the ToolPanel. (34061)
Components
FontSizePicker: Use an incremental sequence of numbers as labels for the available font sizes at the segmented control (conditionally). (37038)
ColorPalette: Improve accessibility and visibility. (36925)
ToolsPanel: Standardize input control label margin. (36387)
Unify styles for ColorIndicator with how they appear in Global Styles. (37028)
Update PanelColorGradientSettings component to use dropdowns. (37067)
Site Editor
Add the CustomizerCustomizerTool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. back to the Appearance menu. (37175)
Add a new aria-pressed attribute to the Toggle navigation button. (37351)
Template revert flow: Make label description source agnostic. (37004)
Packages
Scripts: Enable ReactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. Fast Refresh for block development. (28273)
List Reusable Blocks: Refactor ImportForm into a functional component and use hooksHooksIn 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.. (36938)
Template Part block should not be available in the Post Editor inserter. (37157)
Bug Fixes
Remove 4 instances of gutenberg text-domain from CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.. (37229)
Block Library
Fix return type in the DocBlockdocblock(phpdoc, xref, inline docs). (37352)
Fix deprecated usage of passing null to explode function. (37392)
Gallery:
Fix color issue for captions with hyperlinks in the Gallery block. (37033)
Fix documentation and function naming for gallery block registration in PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher. (37132)
Switch to addEventListener event for load event in the navigation block view script. (37135)
Don’t request the deprecated navigation areas endpoint outside of the Gutenberg pluginPluginA 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. (37187)
Navigation Link Control: Hide the Transforms component when no options are available. (37284)
Remove the deprecated navigation area block from the inserter. (37026)
Query Loop: Add useBlockPreview component, fix alignment of the Query Loop block in the editor. (36431)
Query Pagination: core/query-pagination-next and core/query-pagination-previous blocks: change the markup on the first and last pages of the pagination. (36681)
Search: Fix application of border color class in the editor. (37242)
Fix edit template part link in headerHeaderThe header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. dropdown. (37249)
Fix template resolution to give precedence to PHP templates defined in a child themeChild themeA 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/.. (37074)
Hide the block appender in the Template Part editor. (37213)
Improve notification when saving content in the Site Editor. (36897)
Sync Export APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. error codes. (37347)
Remove CSS that causes conflictconflictA conflict occurs when a patch changes code that was modified after the patch was created. These patches are considered stale, and will require a refresh of the changes before it can be applied, or the conflicts will need to be resolved. with theme.json. (36424)
Design Tools
Border Style Control: Update styling for consistency with border width control. (37244)
Border panel:
Don’t restore deselected border color when width gets changed. (37049)
Update the value of the ColorPicker component when color is cleared. (37048)
Gradients
Fix clearing a custom gradient from throwing a React warning. (37051)
Enable adding custom gradient when gradients are disabled. (36900)
Compatibility with Core and library code
Fix array key warning in block supports layout. (37101)
Templates: Search for old template names in the parent theme too. (36910)
Fix theme requirement validation when using WordPress 5.8. (37226)
Fix WordPress 5.9 check for conditionally running code. (37235)
Fix mistake in the_remove_theme_attribute_in_block_template_content function. (37137)
Gallery: Enable the new gallery block by default if running in Core. (37134)
Packages
Core Data: Fix returning empty array in the getEntityRecords function for unknown entities. (36984)
Include @babel/core as a dependency where applicable. (37328)
Format library: Fix unsetting highlight color. (37062)
Block Editor
Mark the last change as persistent on save. (36887)
Fix content loss when ungrouping template parts or reusable blocks. (37280)
Simplify the RESET_BLOCK action to fix the loss of content when using template part focus mode. (37283)
Post Editor
Multi-Entity Saving: Decode HTML entities in item titles. (37353)
Fix broken links in the Resources section. (37307)
Remove the semicolons from the JSONJSONJSON, 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. examples. (37129)
Packages:
Block Editor:
Add a documentation note about inner blocks and excerpts. (36405)
Update example of usage for suggestionsQuery component. (37281)
Site Editor: Update support documentation URLURLA specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org in the Welcome Guide. (37176)
Code Quality
Compatibility with Core
Better synchronization between Gutenberg and Core code. (37141)
Move the block page templates hook into compat/5.9 folder. (37142)
Move template loader hooks and functions into lib/compat folder. (37149)
Synchronize wp_is_block_theme function and block-templates block support with Core. (37218)
Global Styles
Do not register Global Stylescustom post typeCustom Post TypeWordPress can hold and display many different types of content. A single item of such a content is generally called a post, although post is also a specific post type. Custom Post Types gives your site the ability to have templated posts, to simplify the concept. in WordPress 5.9. (37282)
Port Global Styles code to lib/compat/wordpress-5.9:
IframeiframeiFrame 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. component: Use block settings to pass assets. (37193)
Thank you, @priethor, for coordinating the release process, proofreading, and helping to select release highlights! Thank you, @jameskoster and @joen for helping me to prepare visual assets and proofreading the release post! Thank you, @mamaduka, for uploading the plugin to WordPress.orgWordPress.orgThe 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/! Kudos to all the other contributors who have helped to make this release possible.
The WordPress 5.9 BetaBetaA pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 4 has landed. Please download and test!
Got other posts that should get the CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. team’s attention? Please add them in the comments.
Upcoming releases
The current upcoming major releasemajor releaseA 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. is version 5.9.
RC1 is set to release on 4th January and means two things:
Hard string freeze, including all the strings for the About page.
And TrunktrunkA directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision. branches to 6.0 alpha, so if you have a feature you’d like to see in the next major version, this is the time to start on it!
Component Maintainers
From now until launch, devchat will skip a formal check-in so the group can have a longer Open Floor. If you’re a maintainer who’d like to get help with a blockerblockerA bug which is so severe that it blocks a release. or share success, add your item to the comments.
Open Floor
Add your topic to the comments, and enjoy priority for your topic at the beginning of Open Floor.
You must be logged in to post a comment.