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 the bug tracker.
In order to ensure our solution solves the right problems, and to and steer the future direction of the project, the WP Feature Notifications team is looking for feedback on the current system of notices within the WordPress dashboard.
While the scope of this project involves all forms of notifications (both adminadmin(and super admin) notices and emails), this survey will focus on the experience within the WordPress admin. The team would greatly value any input, both positive and negative.
There was some discussion during the meeting around visibility; several new contributors were not aware of the project before the Contributor Day. How can we address this as the project?
@Sephsekla to work to post more on the Make CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.blogblog(versus network, site), with both meeting notes and other updates
How else can we promote the project? Potentially work with other media, e.g. news sites and podcasts.
Everyone is encouraged to spread awareness, this doesn’t need to be @Sephsekla‘s area only.
Hopefully the upcoming survey will spread awareness as well.
Notifications survey
At WCEU Contributor Day, @terragirl worked on a survey on the current notices/notifications experience within WordPress.
This can inform our direction/user stories.
It will also provide potential marketing stats, and raise awareness of the project.
Some concerns around data and GDPR, do we want to collect emails to follow up?
The consensus is that this should be removed, it’s largely unnecessary and adds unnecessary risk.
This better integrates and builds upon existing WP Core components.
It should make maintenance easier, as well as better fitting with the ongoing development of the Dashboard.
This lead to some discussion about how we will handle notifications which are important but ephemeral – do we want to introduce some kind of toast component to the system?
Splitting the project
In Split this project between the API and Hub #339@dartiss proposed splitting the project, with the data model and 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. in one feature pluginFeature PluginA plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. and the hub in another.
This would allow easier adoption of the new API without finalising the UIUIUser interface for the dashboard
However there are some concerns about how to handle display if we don’t include the new UI by default
The hub could be the default solution, but pluggable and easily disabled, so any custom solution can take over with the same API calls (e.g. Calypso).
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) review planning
We have a number of A11yAccessibilityAccessibility (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) tickets open at present.
It would be good to have a full audit of the UI before we continue much further, to ensure we are fully accessible from launch.
This would be a good opportuniy to work with the Accessibility Team.
Reduction of repository/endpoint scope for 0.3.0 release
@bitmachina had previously recommended reducing the scope of the endpoints for our next release.
However with the addition of new contributors, this may no longer be necessary. @terragirl is now also working on the REST endpoints, so we will process on all of them and reevaluate as necessary.
The WP Feature Notifications project will be at WordCampWordCampWordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Europe Contributor DayContributor DayContributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/., led by @sephsekla. We are a small, focused team, and always on the lookout for new contributors, so we would encourage anyone to get involved!
WP Feature Notifications is a feature pluginFeature PluginA plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins., with a proposal to modernise the way in which WordPress handles emails, adminadmin(and super admin) notices and user notifications. We are working towards the MVPMinimum Viable Product"A minimum viable product (MVP) is a product with just enough features to satisfy early customers, and to provide feedback for future product development." - WikiPedia version of a new, centralised system, with both PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher and REST-based APIs.
Contributing
The project has something for everyone, and all new contributors are very welcome!
For developers and other more technical contributors, we have several areas to focus on:
In-progress PHP work for the MVP
JavaScriptJavaScriptJavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. improvements to make better use of WordPress components
A provisional TypeScript rewrite of the JavaScript UIUIUser interface
We also have a number of areas to cover which are less technically focused:
Testing and feedback on our current proof of concept (version 0.2.0)
Feedback and pain points on the current WordPress notices and emails
Discussion and ideas for future requirements
No setup ahead of the event or prior knowledge is needed to get involved, but for more technical work we would recommend bringing a laptop with Docker, npm and Composer installed.
A pretty quiet week for the project, the key contributors have all been very busy.
@Sephsekla is working on a post for Make CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. around user stories and the problems this should solve, aiming to have that out by the next meeting.
@erikyo and @bitmachina are working on the MVPMinimum Viable Product"A minimum viable product (MVP) is a product with just enough features to satisfy early customers, and to provide feedback for future product development." - WikiPedia and switch to TypeScript, no major change
Review of project goals and priorities
@erikyo and @Sephsekla discussed high level goals and current priorities for the project
Create an extensibleExtensibleThis is the ability to add additional functionality to the code. Plugins extend the WordPress core software. notification system with PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher and REST APIs in WordPress
Improve the admin_notices experience by standardising notices through the new system, making things more accessible
Create an easier and more robust way for plugins/core to notify users by email, replacing the traditional use of wp_mail
Give both users and developers more choice of how notifications are delivered
Discussed the use case of improving email notifications:
This was always a stated goal early on, but we’ve been more focused on dashboard notifications recently
Once the PHP 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. is in place, it should be straightforward to add this as a connector for notification channels – this will be a good test case for adding additional implementations
Current priorities
Communication and community engagement, e.g. Make Core post re: user stories
Complete in-progress MVP work (functional database, PHP API, hooked up to REST endpoints)
Complete TypeScript rewrite (since the JSJSJavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. codebase is fully typed already, this shouldn’t run into issues)
Plan for upcoming events
Upcoming events discussions: WCEU and WCUS
It’s unclear whether we will have MVP ready for WCEU/WCUS. We’ll evaluate at our next meeting.
WCEU is probably too close to have 0.3.0 ready, but WCUS may be doable.
@erikyo: Unlikely that we can onboard new contributors onto the project to work on the MVP, can we find more granular work?
If we can have PHP API ready, contributors could test building integrations for notification channels (e.g. email, SMS)
Lots of opportunities outside code contribution:
Design discussion
Get feedback on existing prototype
Follow up on user stories work: talk to people about their pain points, suggestions
Collaborate with 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 on Phase 3 work
We have an opportunity to work with the Gutenberg team on Phase 3 plans for the adminadmin(and super admin), we should make sure to have these conversations
Some good conversation around JS UIUIUser interface refactoring: As previously noted, there are a lot of custom components we could simplify by using existing components from @wordpress/icons and @wordpress/components.
A TBC agenda for next week’s meeting can be found at https://github.com/WordPress/wp-feature-notifications/discussions/328. If you’d like to suggest a topic, or upvote an existing topic, the team would welcome any input from new contributors! Alternatively, feel free to suggest topics to cover in the comments.
In the last few months we’ve had a good amount of progress, as well as a number of changes, which have led to the recent publication of prerelease 0.2.0.
0.2.0 – A robust JavaScriptJavaScriptJavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. system
You can test out the current state of the feature pluginFeature PluginA plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. by downloading the latest release at https://github.com/WordPress/wp-feature-notifications/releases/latest. Please note that you will need to be using WordPress 6.2 or above.
What originally started as a UX proof of concept has evolved into a more sophisticated JSJSJavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors.-based system for displaying notifications based on serialised data. At the moment this uses static dummy data, however in a future update this will interface with the upcoming REST controllers to display persistent data.
Props to @codekraft and @bitmachina for some exceptional work here, which has really progressed the project.
Leadership, planning and the team
After extensive work as project lead, @psykro has decided to step down from the role. On behalf of the whole team, I’d like to thank him for the massive contributions he’s made, and the time and effort he’s put into the project over the last few years. @sephsekla has taken over project leadership in his stead.
In addition to our weekly office hours (15:00 UTC on Wednesday), @sephsekla, @codekraft, @bitmachina and @jason_the_adams have started a monthly planning call, in order to better scope out the future of the projects
To support the project’s long-term goal of becoming part of WP CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress., the team is looking for partnership from a core committercommitterA developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and/or for a specific component., who can provide guidance on strategy as well as potential barriers to entry.
Core Feature vs Canonical 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
Matt’s post around Canonical Plugins late last year sparked some discussion as to whether this should be an option to consider for the future of the project. While this is a valuable concept, and indeed the approach taken for development, the team are in strong agreement that the update to notifications should be merged when ready, and not kept as a separate plugin.
WordPress is currently lacking a fundamental mechanism: sending notifications to users to give them feedback about state changes in the system.
Notification functionality is indeed fundamental, and already in constant use via the admin_notices hook, a workaround that has major issues of standardisation and accessibility. The new 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. needs to be universal, and available by default, otherwise admin_notices will remain the de facto option.
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/ Phase 3
The team was excited to see the upcoming evolution of the adminadmin(and super admin) experience, which was recently detailed in https://make.wordpress.org/core/2023/03/24/phase-3-collaboration/. As the WordPress dashboard continues to modernise, we are keen to play our part in improving the current admin_notices experience. It’s crucial to ensure that our designs and functionality mesh with the work being done here.
Roadmap and Next steps
The team has recently picked up momentum, but there is still much to be done in order to achieve the project’s goals. Currently the focus is on refining scope and transforming the demo into a minimum viable productMinimum Viable Product"A minimum viable product (MVP) is a product with just enough features to satisfy early customers, and to provide feedback for future product development." - WikiPedia (MVPMinimum Viable Product"A minimum viable product (MVP) is a product with just enough features to satisfy early customers, and to provide feedback for future product development." - WikiPedia). The upcoming 0.3.0 prerelease is planned to be a minimal, but functional notification system, with all demo content removed.
The next (and largest) piece of the puzzle is persistent database storage of notification data. We’re working on finalising the proposed schema, as well as discussing other issues such as retention, translations, multisitemultisiteUsed to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site support and more.
As we move on to this major phase, the team would greatly welcome additional contributors onto the project, particularly developers specialising in PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher and SQL.
Expect a consultation and call for feedback on how we approach this database architecture soon!
Get involved
The project is always on the lookout for new contributors. If you would like to contribute to the project, we invite you to join the #feature-notifications channel in the Making WordPress Slack for our weekly office hours, every Wednesday at 15:00 UTC.
We will have a presence at the WordCampWordCampWordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Europe Contributor DayContributor DayContributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/., where we would love to see some new contributors. Regardless of skill set or expertise, Developers, designers, users or any other interested parties are very welcome!
We are seeking basic workflow feedback for the Plugin Dependencies feature. Testing should be very straightforward.
The testing 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 was chosen because it fulfilled the following criteria:
Plugin is in the plugin repository.
Plugin has the required Requires PluginsheaderHeaderThe 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. for Plugin Dependencies.
Install and activate The Events Calendar CategoryCategoryThe 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. Colors plugin.
The goal is to see how intuitive the process is or might become.
Feedback
What did you do?
Did you get stuck? Where?
Were you able to figure out the path forward?
What did you do?
Did the experience feel “natural” to WordPress?
Thanks for testing. Testing should last for 3 weeks.
This feature allows 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 authors to identify which other plugins must be installed so that their plugin functions as expected. This is done by adding 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. to the docblockdocblock(phpdoc, xref, inline docs) of the main plugin file which contains a comma-separated list of slugs for the required plugins.
The feature is not intended to work with Must-Use plugins, nor does it impact them.
Delete the Hello Dolly plugin, a single file plugin cannot be a dependency
Copy the three test plugin files from /plugins/wp-plugin-dependencies/test-plugins to the /plugins directory.
Navigate to Plugins > Installed Plugins.
Test Instructions / Key Features
Confirm that a new adminadmin(and super admin) notice is displayed if there are additional plugins that must be installed if dependencies are missing.
Confirm that individual plugins with dependency relationships on Plugins > Installed Plugins display Requires or Required by: under the version information.
Add (install/activate) needed dependencies.
Confirm that admin notice goes away once all the dependencies have been installed. Dependencies don’t need to be activated for the admin notice to be satisfied and go away.
After installing all dependencies, confirm that the new admin notice disappears.
Confirm that the Deactivate link and checkbox are not available for plugins that are dependencies with active dependent plugins.
Once all dependent plugins are deactivated, confirm that plugin dependencies can then be deactivated and deleted.
Confirm that the Add Plugins > Dependencies page lists correct plugins, including non-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/ plugins that are and aren’t supported.
Other Things to Test
In a test plugin, try to add a dependency using a plugin’s full name (not slug).
No dependency should be noted
Add a dependency for a non-wordpress.org plugin slug that is installed/active.
Hook the Plugins 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. to register a non-wordpress.org plugin.
This is done with the GitGitGit is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. Most modern plugin and theme development is being done with this version control system. https://git-scm.com/. Updater plugin
Test adding “Requires Plugins” to the DocBlock of a plugin in mu-plugins.
Nothing should happen as mu-plugins are not supported for this feature.
What’s New?
In the main plugin file’s docblock:
A Requires Plugins header has been introduced.
List the slugs of the dependencies in a comma separated string. For example:
An admin notice informs site owners if there are additional plugins that must be installed. It will display as long as there are uninstalled dependencies.
Each plugin that requires other plugins has a new line in the plugin description. For example:
Each plugin that is a dependency, and is also dependent on other plugins, has both lines above.
If all the dependencies of a plugin have not been installed and activated then the dependent plugin will not be able to be activated.
Plugins page
On the Plugins > Add New > Dependencies tab:
The above Requires and Required by data will display in the plugin card.
This tab shows a card for each plugin that is required for other plugins to work.
Familiar Install Now, Activate and Active buttons are provided so that site owners can manage these plugins.
If a dependency is not available on wordpress.org and does not integrate with the Plugin Dependencies feature, it will not be possible to install or activate via this tab. The plugin will display in a generic card.
It is possible to integrate a dependency that is not available on wordpress.org with the Plugin Dependencies feature. This requires hooking into the plugins_api_requestfilterFilterFilters 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. and returning a valid plugins_api() response. This type of code was added to the feature pluginFeature PluginA plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. as a composer dependency with afragen/add-plugin-dependency-api, and a filter to the endpoint returning valid plugins_api() response for the Git Updater plugin.
Plugin > Add New page
Instructions for Reporting Issues
Please leave feedback in the comments below this post.
[Update: links to TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets mentioned added]
Again, WordPress 6.1 is under way.@costdev invited release leads and squad members to pingPingThe act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” him if they need extra eyes on tickets or help with anything else.
And @marybaum reported a successful test of 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. on #50886. Her co-maintainer on Help/About, @webcommsat, asked for further tests on the patch.
Finally, @webcommsat highlighted a request from the Marketing team: please keep sharing 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/ social posts related to releases! That single act really helps keep the project in users’ hearts and minds.
Thanks to @webcommsat for cohosting the chat and for reviewing this summary.
The goal of the WP Feature Notifications project is to create a new and better way to manage and deliver notifications to the relevant audience. The admin_notices hook has served WordPress well and will continue to do so for the foreseeable future. This project is focused on building a new framework for notifications from the ground up, and potentially providing a tool that encourages consistency in presentation, follows best practices in standards and 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), and discourages spammy or disruptive interactions in the WordPress adminadmin(and super admin) screens.
The end result will be a RESTful model and 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. to be utilized by coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. but would also enable third-party developers to further extend the functionality. Possibilities could range from pulling in updates from relevant SaaS integrations and hosting platforms, to enabling mobile push or SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. notifications outward from your WordPress website.
After approximately three years of discussion, scaffolding, and design, the WordPress Notifications feature project is ready to begin collecting feedback on a static demo of the previously reviewed designs. We’re inviting users to install the feature pluginFeature PluginA plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. on a test environment, view the static mockups, and provide feedback to the team.
How To Install
The 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 zip file can be downloaded from the Releases page of the Github repository, and installed like any other WordPress plugin.
Alternatively, it can be installed via Composer:
First add the repository to your composer.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.
Then install the develop branchbranchA 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". using the commandcomposer require wordpress/wp-feature-notifications:dev-develop.
How To Test
Once installed and activated, the plugin will display three demo user interface elements for review:
On-page notifications – Similar to the current admin_notices hook, on-page notifications appear at the top of the Dashboard screen.
The Hub – A new “bell” notifications icon on the right-hand side of the admin bar will open the “hub”, a drawer of notifications.
Notification Settings – Users can visit Settings > Notifications or click the link at the bottom of the Hub to see a preliminary draft of a settings table for managing notifications.
It is important to note that this is a static, front-end demo, and the team is mainly looking for overall feedback about the initial direction of these components. For more context on the project, we recommend reviewing the Project Requirements and reviewing the initial Project designs.
Looking Ahead
We look forward to collecting your feedback in the comments below or in our Github issues. If you would like to contribute to the project, we invite you to join the #feature-notifications channel in the Making WordPress Slack for our weekly office hours every Wednesday at 14:00 UTC and are happy to welcome new contributors to the project.
“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 posted 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.
The Gutenberg 13.6 release comes with four major highlighted features, many smaller enhancements, a number of 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) improvements, and twenty-six 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. To make developing with Gutenberg easier, a number of refactors to the codebase occurred for typescript rewrites. Work around improving performance continues with many changes shipped in this release expected to lead to noticeable results when the broader efforts are completed in future releases. Finally, the Style Engine work has progressed with the option for extenders to use these features with the correct theme.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. shape for now and more options in the Styles UIUIUser interface planned for future releases.
Provide patterns to select from when creating any post type
In WordPress 6.0, an 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. was introduced that allows patterns to appear in a modal every time a user creates a new page so that, instead of starting from scratch, a user starts with content to work from. For example, this means a user could choose between patterns for a contact page or an about page and then just fill in the details that are unique to their site.
Thanks to feedback from the community, this release expands this feature to allow the same modal to be presented to a user on other post types. For example, if a user has a book post type, they could now be presented with different ways to show the book based on patterns in a modal (book cover on the left, description on the right, book cover in the center with description below, etc).
In order to take advantage of this new API powering the current experience, you need to include core/post-content in the blockTypes for your pattern and include the postTypes where you want the modal to show in the postTypes array. If postTypes are not provided the modal just appears on the page.
Create more template types in the editor
Expanding the types of templates that can be created from within the Site Editor continues to be a high priority to open up more creative options for folks to control every aspect of their site. With Gutenberg 13.6, it’s now possible to create a template for all of the posts of a specific post type (ex: single-$postType) and, to get more granular, a template for a specific post (ex: single-$postSlug). This is all handled with a very simple UI and doesn’t require needing to know post types identifiers or post slugs, making it easy to work with.
Other Notable Highlights
Gutenberg 13.6 includes several, more general enhancements and accessibility improvements.
Clearer layout controls
For example, the “Inherit Default Layout” controls have been updated to a more understandable toggle to help users and themers alike make the design decisions they want:
More keyboard shortcuts
Two keyboard shortcuts (Strikethrough or Inline Code) have been added and a previously missing keyboard shortcut to link to a post is now properly documented in the shortcuts modal:
Simplified post scheduler
The post scheduler UI has been updated to use “Today” and “Tomorrow” when possible to make the experience more readily understandable at a glance.
New template selection UI
Previously, the template selection options took up a lot of space in 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. to allow you to pick and choose what you wanted. With Gutenberg 13.6, this experience has switched to being a popover allowing it to take up far less space and blend in better experience-wise with other post details.
Explore the expanding theme.json engine
Gutenberg 13.6 builds on previous work to expand theme.json to allow you to create a cohesive design across blocks by allowing you to change the styles of all buttons. This relies on targeting elements which are pieces of the UI that appear in multiple blocks and whose style you should be able to change across all implementations. With this work, it means you can control a button’s style across your site in everything from the general Buttons 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. to the Search block.
For anyone building third-party blocks with buttons, this same feature can be used to interact with your block assuming the block you create provides the correct markup. Keep in mind that there’s a difference between changing the styles of an individual block on a page, which will just impact that block, and changing the style at the element level, which impacts all button blocks.
Alongside the button element, captions have also been included so you can control the style of captions across all blocks with captions, from an Image block to a Video block. That element controls the styles of captions across all the blocks. For now, captions can only be controlled using theme.json but, in the future, there will be a way to manage this in the UI.
Keep in mind that this work around targeting elements will be fairly contained as it only impacts items that can’t be codified as blocks (links, captions, buttons, etc). Because these new features are in the early stages of development, please test your themes and blocks and report any issues you might find. It all helps as development continues.
Accessibility continues to be a focus and this release has some improvements to focus management and adding in previously missing aria labels.
Changelog
Enhancements
UI
Increase fade intensity during spotlight mode. (40454)
Improvements to “inherit default layout” toggle. (41893)
Make it easier to select “Edit visually” when in “Edit as HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.. (41516)
Abbreviate post schedule date when possible. (41738)
Turn Template settings panel into a Template popover. (41925)
Expand the template types that can be added – single custom 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. and specific posts templates. (41189)
Add clear customizations to the template card. (41743)
Accessibility
Make the site editor 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. toolbar use the ARIA toolbar pattern. (41902)
Allow defining an aria-label in group blocks. (41744)
Add keyboard shortcut for Strikethrough (41910) and inline code (41816) in the format library.
Navigation submenus: Allow Escape key to close the submenu and focus trigger. (41774)
Show the link completer shortcut on the help modals. (41872)
Bug Fixes
Fix incorrect ‘_n’ usage in the block Editor. (41886)
BlockPreview: Fix ‘Infinity’ is invalidinvalidA resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. ‘minHeight’ value warning. (41766)
Compare against default categoryCategoryThe 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. in the settings instead of hardcoded slug. (41956)
Fix PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.1 deprecation in the gallery block. (41193)
[Block Editor]: Fix content loss from replaceInnerBlocks with controlled blocks. (41948)
Fix action button spacing on 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. (41915)
Render duotone presets in pattern preview. (41249)
Block Library
List v2:
Fix impossible to outdent multiple list items. (41713)
Set selection to created block after split with Enter. (41899)
Transforms don’t take into account nested blocks. (41741)
Comments: Fix issue with custom font sizes and links color. (41627)
Only use the post-title if the 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. is a link. (41775)
Always load block CSS from __experimentalStyle on global styles output. (42005)
Components
Border Controls/Color Palette: Ensure popovers remain within small viewports. (41930)
ColorPicker: Remove horizontal scrollbar when using HSL or RGB color input types. (41646)
Color Controls: Allow popovers to remain within smaller viewports. (41929)
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/.
Fix retrieving autosaves when using a custom rest_namespace. (41542)
Remove hardcoded references to rest namespace. (41950), (41951).
Performance
Continued the work refactor away from lodash usages in order to reduce the build size.
Remove Unrequired regex search on duotone supports. (42020)
Ensure only the main query is modified when resolving template for new posts. (40799)
Avoid calculating HTML block styles in useSelect. (42026)
Fix performance regressionregressionA software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. pasting due to removeWindowsFragments. (41907)
Documentation
Add an explanation of how to set up the environment to run the performance test. (41883)
Add local dev notesdev noteEach 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, and 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. to aid when doing work on schemas. (41968)
Fix Minor documentation inconsistencies on block attributes. (41468)
Add an example for the end-to-end tests snapshot update. (41999)
Fix documentation of Flex component to no longer be experimental. (41926)
Fix link to “Good First Review” issues in README. (41754)
Fix link to Flex component in FlexItem Readme. (41928)
Fix some small inconsistencies in the block editor documentation. (41861)
Update terminology and documentation of Style engine. (41964)
Update skip serialization documentation to reflect ability to target specific properties. (41277)
Add supports to basic sample code documentation. (41589)
Remove leftovers of legacy 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. block. (41891)
Remove startBlankComponent from __experimentalBlockPatternSetup. (41721)
Move setting registration into WP 6.0 compat. (41985)
Add __experimentalUseResourcePermissions to make code simpler. (38785) ))
Remove Unnecessary ‘&& check’ as ‘optional chaining (authorDetails?.avatar_urls) check’ is already used in the AvatarAvatarAn avatar is an image or illustration that specifically refers to a character that represents an online user. It’s usually a square box that appears next to the user’s name. Block. (41779)
Refactor NavigationItem component to pass exhaustive-deps. (41639)
Move generation of layout util classes to existing method to avoid adding global public method WP. (41885)
Tooling
Static analysis
ESLint: Enable ignoreRestSiblings option for no-unused-vars rule. (41897)
IDEIDEIntegrated Development Environment. A software package that provides a full suite of functionality to software developers/programmers. Normally an IDE includes a source code editor, code-build tools and debugging functionality.’s integrations
Autocompletion support for useSelect (via jsDoc annotations). (41596)
The following benchmark compares performance for a particularly sizeable post (~36,000 words, ~1,000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.
Post Editor
Version
Time to the first block
KeyPress Event (typing)
Gutenberg 13.6
4.51s
41.02ms
Gutenberg 13.5
4.34s
38.81ms
WordPress 6.0
4.66s
37.70ms
Site Editor
Version
Time to the first block
KeyPress Event (typing)
Gutenberg 13.6
5.22s
32.30 ms
Gutenberg 13.5
5.05s
32.59 ms
WordPress 6.0
4.82s
31.07 ms
Contributor Props
The following PRs were merged by first-time contributors – thank you and congrats!
@adambasa-dp: #30930 – Make it easier to select “Edit visually” when in “Edit as HTML. (41516)
You must be logged in to post a comment.