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.
Summary of the WordPress Developer Blogblog(versus network, site) meeting, which took place in the #core-dev-blog channel on the Make 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/.. Start of the meeting in Slack.
Deleted “Learning” isn’t every article a learning experience?
Since the beginning in 2022, we keep categories very high level, and become more specific with Tags.
GitHubGitHubGitHub is a website that offers online implementation of git repositories that 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/ Action: label notifier
For the roundup posts, people can get notified when the next issue is available to share their team’s notes with the writer to be included in the next What’s new for developers post. If people want to get GitHub notification, please let me know and I’ll update the GitHub Notifier Action.
Author Profile links
With the redesign, author links now go to 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/ profiles.
If you are interested in taking on a topic from this list or know someone who would be a good person to writer about them, comment on the Issue or 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.”@bph in slack either in the #core-dev-blog channel or in a DM.
@webcommsat brought to the meeting, the discussion from last night’s dev chat meeting about the Proposal to improve the FieldguideField guideThe field guide is a type of blogpost published on Make/Core during the release candidate phase of the WordPress release cycle. The field guide generally lists all the dev notes published during the beta cycle. This guide is linked in the about page of the corresponding version of WordPress, in the release post and in the HelpHub version page. of the WordPress release, to see “what role the dev blog could possibly have in this as well as identifying what the blog already does and could do.
There is a wider discussion needed on communication and education of release features, but it would be good to start a more detailed discussion on potential and what is already aiding these areas within the dev blog. This can then feed into the wider considerations with other teams.”
@webcommsat: “The proposal now is not so much about a new version of a field guideField guideThe field guide is a type of blogpost published on Make/Core during the release candidate phase of the WordPress release cycle. The field guide generally lists all the dev notes published during the beta cycle. This guide is linked in the about page of the corresponding version of WordPress, in the release post and in the HelpHub version page. appearing in dev blog, but looking at where and how we communicate and educate on a release, and what is needed. With the increased ability to segment to different audiences across the project, this could be a great opportunity. Hence, the wider input from marketing, docs, training, community, and the dev blog.
Being clear what happens in the dev blog already, giving tangible live examples to help those less familiar with the blog materials, and what could be potentially done would be a real cake yo the discussion. With the segmentation, we have just in levels of developer knowledge, we can add a valuable insight too.”
@greenshady, @webcommsat also brought up concerns on ownership, availability of people during release time and bandwidth of contributors.
Next steps: @webcommsat suggested: a mapping exercise would help, and happy to try to start one we can add to with ideas. We can then add links to examples of what we have already published.
Action: After 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. Asia, schedule a Hallway Hangout with contributors from the editorial group and other teams to kick off work on a basic content map for a release and 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 existing efforts and identify gaps.
Next meeting: March 7, 2024, at 13:00 UTC in the #core-dev-blog channel
Note: This post was updated to correct the format used in one example and remove references to the wapuu w.org username (not officially associated with the project). A note was also added under a list saved as a synced pattern to indicate the contents of the list may change over time. 2/2/2024 – @desrosj
In January 2022, a proposal was published on this blog to implement a new process within any GitHubGitHubGitHub is a website that offers online implementation of git repositories that 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/ repository under the WordPress organization to ensure anyone and everyone contributing to the project receives due thanks in the form of “props.” The post is still almost entirely accurate and it’s recommended you read that in full. Here are some highlights.
One of the greatest things about open sourceOpen SourceOpen Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. is that contributions come in many shapes and sizes. Anyone can contribute regardless of skill set, experience, time zone, or background. There are countless ways for someone to get involved with open source projects.
WordPress is no different. Contributors submitting code modifications are only a small subset of the larger community. Recognizing all types of contributions is essential to establishing a healthy contributor base, and the responsibility falls on the project’s maintainers. Contributors who feel recognized and valued are more likely to continue contributing.
There is an established and documented policy on the TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress./SVNSVNSubversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. side of the project to ensure that everyone contributing to a changeset receives credit (or “props”). This method has been in place for over 12 years, making generating the list of props for each release scriptable and straightforward. The process is unique to the project but frequently receives positive feedback from others in open source.
Since being merged into WordPress CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. in version 5.0, there has yet to be an equivalent process for the contributions on GitHub. The process is manual, does not account for non-code contributions, and often results in contributors not receiving credit for their work.
The post documents the state of props practices and related processes in detail for both Trac/SVN and GitHub. No major changes have been made to these practices since the publish date of that post.
After taking into account all of the feedback received from that proposal, a new policy is now in place for maintainers.
New requirement for 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/ GitHub merge commit messages
Starting today, it is required that GitHub merge commit messages for Gutenberg include credits for all contributors following the same guidance as Core SVN commits:
Props should be given to all those who contributed to the final commit, whether through patches, refreshed patches, code suggested otherwise, design, writing, user testing, or other significant investments of time and effort.
In Core SVN, this is done as Props x, y, z. In GitHub, this will be done using Co-authored-by trailers. To avoid having personal emails in the commit log of the project (or having to know which personal email someone has associated with their GitHub account at a given time), a contributor’s GitHub and 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/ usernames should be used in the following format:
This practice defines a consistent expected pattern that can be reliably parsed by a script to collect contributions for a repository from a 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/. log in the same fashion as the Core SVN repository.
In order to make this new practice easier for committers and maintainers, a new tool has been merged into the code bases.
Introducing Props Bot
Props Bot is a new GitHub Action that will compile a list of contributors for a given pull request. The bot will leave a comment with a list of contributors formatted for use in both Trac SVN and GitHub.
The comment will be continuously updated as new activity occurs. Additionally, the bot can be manually run by adding the props-bot label to the pull request.
Types of activity included:
Anyone who publishes commits to the PR’s 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"..
Anyone who left a review or responded to a review on the PR.
Anyone who commented on the PR.
Anyone who created an issue that is attached to the PR.
Anyone who commented on issues attached to the PR.
As of [57517] in wordpress-develop, and 91450bd in WordPress/gutenberg, Props Bot is now available. 🎉
An example comment by Props Bot on a pull request.
The bot relies on an active connection between a WordPress.org and GitHub account. For a step-by-step guide on connecting these accounts, please check out the new page in the Core Handbook.
The bot can be used in any GitHub repository, not just ones under the WordPress organization. However, it’s required for the Gutenberg repository, and official WordPress repositories are strongly encouraged to use it since it will allow the project to appropriately credit contributors in WordPress releases more easily.
What doesn’t Props Bot do?
While the basics of collecting contributors is handled by Props Bot, there are still some things not yet handled by Props Bot:
Manually include someone who has not directly interacted with the PR or linked issues.
Contributors who only interact on Trac tickets relevant to the PR need to be manually included.
Only the first 100 comments are currently checked (see props-bot-action 41).
The easiest way to confirm your accounts are connected is by viewing your w.org profile.
There is one additional step that all contributors should take, even if you have previously connected your accounts.
An added benefit of this new practice is that all props given using this new format will be shown on your GitHub profile’s activity graph. However, this depends on your w.org Git email being added as an alias to your GitHub account (example: desrosj@git.wordpress.org). This can be done by visiting the Settings > Emails page on GitHub.
Note: You’ll see an orange “unverified” notice next to your @git.wordpress.org email after adding it as an alias in GitHub. In the future, email forwarding may be configured to allow these emails to be verified. See this Making Systems request for more information.
How are unlinked contributors handled?
When unlinked contributors are detected, Props Bot will 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.” them in the comment, requesting they establish a connection and link to the handbook page.
Any unlinked contributors are noted in the message provided by Props Bot as a way to associate the person’s contributions with their w.org account should they connect their accounts after the PR is merged. This should be included in the merge commit message.
Contributors without a connected w.org account can not be credited in the w.org Credits 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. and will not have their contributions show up on their GitHub profile.
As 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. or repository maintainer, what do I need to do?
The list of Co-authored-by trailers must be preceded by a blank line.
Co-authored-by trailers should be the last thing in a commit message.
The unlinked contributors must come before the Co-authored-by trailers.
Unlinked contributors should be entered in one line preceded by Unlinked contributors:, each one separated by a comma and a space (, ), and a period after the last one. Example: Unlinked contributors: nacin, matt.
Usernames must not start with an @ (at) sign.
When manually adding someone, please only use their GitHub and WordPress.org usernames in the following format: Co-authored-by: githubusername <dotorgusername@git.wordpress.org>.
The only accounts that are allowed to be noted with a non-w.org email are bot accounts (dependabot or github-actions). It’s important to leave these bots as listed by the GitHub generated Co-authored-by trailer so future contributors know which bots were involved in the changes.
If there are contributors already noted with Co-authored-by in the suggested commit message, verify they are also included in the list provided by Props Bot before removing. These will be in GitHub format and should be converted to the above w.org format. Deleting the GitHub formatted ones will ensure an accurate contributor count for each commit, but it’s not required. Non w.org emails will be ignored by the props parsing scripts.
If a contributor’s w.org username is unknown, add their GitHub username to the “Unlinked contributors” list.
If there are Signed-off-by trailers in the suggested commit message, leave them in place above Co-authored-by trailers. These serve a different purpose and are ignored in the context of collecting props.
Note: The above list is a synced pattern. As it’s improved over time, the changes will be reflected in this post. The above list may be different than what was originally published.
If you don’t see a Props Bot comment on your PR, you may need to pull in the latest changed in trunk.
The action does not currently support using the @v1 notation in the value of uses for a step. For now, using trunk is recommended to help test Props Bot.
The Action has no tests. Contributions are more than welcome!
Because this practice was not in place during the 6.5 release cycle, the previously documented process will be used one more time. The timing of this change is such that the work for 6.6 in the Gutenberg release is about to begin, giving us an entire release cycle using this process and allowing the 6.6 release to switch to automating props collection from the Gutenberg repository.
Summary
While these changes do not solve contribution tracking for every team, every workflow, and every tool that’s to make WordPress, this new practice, combined with the Props Bot action, will bring a consistent standard and level of attribution that can be parsed more easily across more areas of the project.
This is version 1 of this change. All feedback and testing is welcome. There will likely be some refinements required after wider testing!
A WordPress release is a sum of all the contributions made during each release cycle, and use of this Props Bot will help us more accurately thank every contributor. ❤️
Props for Props Bot Contributions
A post about props would not be complete without some props! Big props go out to @dharm1025 for helping to get the initial code converted from a generic 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/. file to a GitHub Action. Thank you to @jeffpaul and @jorbin for working closely to refine the action, create the new handbook pages, modify existing ones as needed, and test the bot. And thanks to @dd32 for creating the underlying w.org API endpoint to return w.org profiles for GitHub usernames making this possible.
8 years ago, a ticket was created in WordPress, suggesting a PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher autoloader for WordPress CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. classes. In that ticketticketCreated for both bug reports and feature development on the bug tracker., many things were discussed regarding the concept of adding a PHP autoloader in WordPress. That ticket discusses adding 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. to allow 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 developers to register their own classes, it discusses using Composer, as well as other more nuanced topics of implementing an autoloader in WP.
It is a long thread, but a recommended read for anyone wanting to get some more context and historical data. That initial discussion was derailed several times, so for the purposes of this proposal, a new ticket was created on #60414
Since then, a lot of things have changed – both in PHP and in WordPress. Despite all these changes, WordPress Core still loads most of its codebase on each page load – regardless of whether a file is used or not. That means that WordPress takes more time to load, and at the same time consumes more memory than it should.
The time cost of including these extra files is pretty small (almost negligible), but the memory cost is not – especially for small sites running on shared hosting. By including files that are never used on a page load, we’re forcing servers to keep them in-memory, which is obviously sub-optimal.
Current work
In 2022, work started in a pull request to implement a PHP autoloader for Core classes. In the 20 months since the PR was initially created, it has received feedback, has been polished, and has been tested thoroughly. It has been kept up-to-date with the 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. version of WordPress and is ready for production.
Initial tests show an improvement in loading time, CPU resources and memory consumption. On average, the improvements server-side for a new WP site with no plugins installed and using the default theme, are approximately 2-3ms for load-time, 0.5-1.5% for CPU time and 5-7% for memory consumption.
What the proposed implementation does
The implementation in that pull-request was kept simple and minimal:
Introduced a WP_Autoload class.
Added a CONST in the object, containing the classMap for classes & their filenames. A hardcoded classMap was deemed preferable because of legacy reasons. WordPress classes don’t (currently) have namespaces or standardized mapping. By using a hardcoded classMap we can introduce an autoloader, and facilitate future implementations & standardization.
Removed the include/require/include_once/require_once calls for files containing classes throughout the WP codebase
Included external libraries and their respective autoloaders in the Core autoloader.
What the proposed implementation does not do:
It does not introduce an API for plugins
The implementation does not introduce an API to allow plugins/themes to add their own classes to the autoloader. Instead, it only focuses on Core classes, keeping things minimal.
Though adding an API and/or method to allow plugins to add their classes to a centralized autoloader is something we can consider for the future, it is not a requirement for this initial implementation, and it would overcomplicate the initial steps of autoloading Core.
It does not use Composer
Since the Composer vs non-composer autoloader was one of the main points of discussion in the 8-year-old ticket, it’s worth mentioning here, and clarify some points:
Composer is a very mature and safe way to autoload classes. However, this initial implementation does not use it.
This proposal is for a minimally invasive, performance-optimized change. It implements autoloading using a hardcoded classMap. Still, It does take care of all the preliminary work so if it is decided that a Composer autoloader is what we want to do, then switching to that will be a relatively easy task. The current PR has a very narrow focus and serves as the first step towards modernizing the WP codebase.
Composer would allow us to automate generating the autoloader, so if deemed appropriate, we could modify the current proposal to implement that.
Adding an initial, minimal autoloader will not 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. a future Composer implementation. It is easier to start without it, and then add it if we find that we need it. Doing the reverse could prove more difficult, so this path was deemed safer as a first step.
Benefits
The result of that PR is a cleaner and faster codebase. But this change is not only beneficial to Core developers, it will also benefit the ecosystem as a whole:
Reduce friction for plugin developers: Right now, plugin developers usually need to check if a class exists, if it doesn’t then look up its location in Core files, include the file etc. Then and only then can they safely use what WP has to offer. Adding an autoloader makes things easier and removes a friction point for plugin developers who will now be able to directly use a WP class.
Improved performance: – no matter how small the improvement is, it can make a big difference for hosts and larger sites.
This is the first step towards modernizing the WP codebase. Though in itself it may appear like a marginal (but still very worthy) performance improvement, it opens the door to more improvements in the future of WordPress without any backwards-compatibility concerns.
A word about overriding Core classes
One concern has already been raised, and I want to immediately tackle it: adding an autoloader for WordPress Core classes would mean that it will be possible to override these classes by loading another file early enough. We should not base code decisions in Core on how developers might misuse it… There are always ways that someone can mess up WordPress by doing the wrong thing. Being able to override Core classes can be seen both a pro and a con, depending on our point of view – but should not be a deciding factor.
It can benefit hosts who need to override things because of idiosyncracies in their hosting environment.
It can benefit site-builders who don’t know any better and are currently “hacking” Core files, making it impossible to later apply security updates. As WP purists, we know not to ever do that, but we can’t assume that everyone else is as mindful as we are.
It is a shift in the way we think about WP classes, and change is not easy. Autoloading classes is a battle-tested and established good practice in all modern applications.
When adding a new class file to WP-Core, we’ll need to update the classMap accordingly. This is not a big issue however, since we won’t have to include the files we add – just add them to the class-map.
Adding a PHP autoloader to WordPress is a relatively trivial change as the PR demonstrates. It comes with nice benefits and modernizes the way we handle class loading. Because it also represents a fundamental change in the way we include files and classes in the future, your feedback would be greatly appreciated.
“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-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Site Editor project (formerly called Full Site Editing).
This release, which includes 264 pull requests (that’s a lot of work!), can be labeled mainly as a ‘code quality’ one, as it includes two important refactors in both Fonts and Interactivity APIs.
It also includes some improvements in the new “Data Views” experiment, 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.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. improvements, and finally, a feature that all developers have been waiting for: the ability to extend allowed blocks within a parent block.
New 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. allowed Blocks
Until now, there has been no way to 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. the allowed blocks in an inner block area. This means that developers could not specify which blocks could be inside a parent block without editing the parent block’s edit file. Imagine you’ve just created an amazing icon block to include in the navigation block; now, you can whitelist it using a filter.
Several smaller edit actions are available in the post editor but not the site editor. The misalignment means users sometimes need to hop between editors, which can be frustrating. This Gutenberg version includes all page edit features in both editors.
Also, the Interactivity 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. and the Fonts Library API have received a big refactor. These APIs are getting close to the 6.5 release, so it’s a great time to test them.
Other Notable Highlights
New Interactivity API directives
The Interactivity API now includes several new directives that will be incredibly helpful when creating interactive blocks.
data-wp-on-window and data-wp-on-document to handle global events like scroll, keypress, load, ready, etc.
data-wp-each to render lists.
data-wp-run to execute custom logic while rendering an element with directives.
Footnotes available for custom post types
Footnotes are available for all post types that
Are public and appear in the 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/..
Supports all of the following: editor, custom fields, and revisionsRevisionsThe WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision..
Changelog
Features
Interactivity API
Add wp-data-on-window and wp-data-on-document directives. (57931)
Keep Link UI open upon initial link creation when used in RichText. (57726)
List View: Displace list view items when dragging (a bit more WYSIWYGWhat You See Is What You GetWhat You See Is What You Get. Most commonly used in relation to editors, where changes made in edit mode reflect exactly as they will translate to the published page.). (56625)
Show initial suggestions in rich text Link UI. (57743)
Disable lock button if user cannot control lock state. (57274)
Use ClipboardJS latest version and clean up focus loss workaround. (57156)
Dimensions: Add Aspect Ratio block support. (56897)
Block Library
Add more taxonomyTaxonomyA taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. options to the post navigation link. (48912)
Better navigation link variations for post types / taxonomies. (56100)
Remove “blocks” from copy and delete labels. (57769)
Pullquote Block: Add padding and margin support. (45731)
Video Block: Add raw transformation from videohtmlHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.. (47159)
Aspect ratio: Remove support on the Group block for now. (58414)
Image block: Move UI for lightbox from 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 the content toolbar alongside link settings. (57608)
Data Views
DataViews: Enable grid layout for templates & parts by default. (58137)
DataViews: Make dataviews powered page patterns stable. (58139)
DataViews: Make the “Manage Pages” stable. (58166)
Use a 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. format and support linkTarget of core/button for Pattern Overrides. (58165)
Patterns
Add image block support for pattern overrides. (57909)
Outline editable blocks that are within a content-locked container. (57901)
Add description to the save panel 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. when nothing is checked. (57716)
Font Library
Update the default collection data URLURLA specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org to 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/ cdn. (58186)
Font Library: Refactor stylesheet using CSSCSSCascading Style Sheets. variables (58237)
Font Library Modal: Reset the selected font when installing a new font. (57817)
Font Library: Disable font library UI using a PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher filter. (57818)
Font Library: Filter fonts upload directory. (57697)
Font Library: Use data or src file to define font collection data. (57734)
Update Navigation block to render hooked inner blocks. (57754)
Add gettext content when translating ‘Header’. (51066)
Template Editor
Remove template-only mode from editor and edit-post packages. (57700)
New APIs
Block API
Block Bindings API: Add block bindings PHP registration mechanisms and “Post metaMetaMeta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress.” source under the experimental flag. (57249)
Block Bindings API: Refactor logic into Block Bindings class and singleton pattern. (57742)
Bug Fixes
Block Library
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: Fix broken aligments in the editor. (58114)
Embed Block: Fix retry processing when embedding with trailing slash fails. (58007)
Lightbox: Fix “Expand on click” control being disabled unintentionally. (56053)
Modified Date Block: Don’t render change date tool. (57914)
Only prioritise Quote transform where relevant. (57749)
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.: Fix posts list variation detection. (58194)
#56734 When there is no font, the border should not appear. Display further guidance text. (56825)
Fluid typography: Do not calculate fluid font size when min and max viewport widths are equal. (57866)
Block Editor
Fix 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.: Content locking does not stops when an outside block is selected. (57737)
LinkControl: Remove unnecessary right padding of input fields. (57784)
Custom Fields
Block Bindings: Fix button popover not showing in patterns. (58219)
Interactivity API: Fix flaky test on-window. (58134)
Fix flaky test on-window, remove duplicate expect on-document. (58181)
Interactivity: Fix broken reactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. usage in published package. (58258)
Fix visual indication of switch to default template in the post editor. (57718)
Site Editor
(editor)(fix) Append the edit-post-header-toolbar class in NavigableToolbar for backward compatibility with 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 GUI injections. (58154)
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)
Site Editor
Fix font variants count color contrast ratio and l10nL10nLocalization, or the act of translating code into one's own language. Also see internationalization. Often written with an uppercase L so it is not confused with the capital letter i or the numeral 1. WordPress has a capable and dynamic group of polyglots who take WordPress to more than 70 different locales.. (58117)
Make the site hub View Site link always visible. (57423)
Block Editor
Fix parent selector button focus style and metrics. (57728)
Restore visual separator between mover buttons when show button label is on. (57640)
Widgets Editor
Fix Widgets page Undo and Redo accessibility and keyboard interaction. (57677)
Block editor: Avoid list re-rendering on select. (57188)
Block editor: Don’t register shortcuts for preview editors. (57984)
Block editor: Fix performance regression after #57950. (57971)
Block editor: Use context for useBlockEditingMode. (57950)
BlockSwitcher: Defer transform calculations until the Dropdown is open. (57892)
Call variation through callback so it’s only loaded when needed – in support of tracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. 59969. (56952)
Footnotes: Combine format store subscription. (58129)
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.: Calc compat styles once per page load. (57798)
Measure typing with the top toolbar enabled. (57709)
Meta boxes: Don’t initialise if there are none. (57182)
Components: Move CHANGELOG entries under the correct release. (57885)
Docs: Fix typo in “The block wrapper” document. (58106)
Docs: Use ‘key’ in ‘editor.BlockEdit’ filter code examples. (58119)
Document files/directories requiring backmerging to WP CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. for 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.. (58064)
Fix the iframe markup of the embed video in the Quick Start Guide. (57857)
Remove unused state and rename props to attributes in getElement(). (57974)
HTML API
BackportbackportA port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. updates from Core. (57022)
Update the cherry pick script to work with the new version of gh. (57917)
Scripts: Remove unused variable in bin/list-experimental-api-matches.sh. (57771)
(chore) Revert bump to the v17.5.1 (draft) due to 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. in the release found by manual testing. (58027)
These will focus on open proposals in coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. and release items.
This week will provide a discussion opportunity during Dev Chat to explore this open core proposal relating to major release Field Guides.
This post recommends what could be next. One suggestion is to rename the channel as ‘outreach’ and use it in a wider way to reach site builders and extenders. Another use of this channel could be to assist several projects which could use SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. support in the WordPress space for discussion, clarification, and overall ruminating on future features coming to WordPress.
Timescales:
Feedback deadline: February 12, 2024.
A Hallway Hangout is scheduled on February 20, 2024, at 15:00 UTC to further discuss this proposal, the comments, and the next steps.
Could you help curate a Call for Volunteers to review the open proposals on Make/Core and create a list of unresolved ones to discuss during Dev Chat meetings?
Changes on TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between January 22 and January 29, 2024:
48 commits
64 contributors
60 tickets created
4 tickets reopened
67 tickets closed
welcome to two new contributors to core this last week
Core-editor updates
Props to @annezazu for collating and sharing this list.
Pattern overrides: there are some current questions around how this features ties to the 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. Renaming 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. and how the internal block ids are generated and used. Right now, we can find the block names through block ids, but we cannot do the same the other way around.
Block Bindings: the experimental flag was removed along with an outline of next steps for Gutenberg RC, Beta, and what’s out of scope for 6.5 (including when to backportbackportA port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch.). For out of scope, this includes a UI for users to add bindings. A ~4 min video walks you through the current status in 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.!
Next 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.: 6.5
Any updates, 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 list or updates on 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. 1?
Beta 1 for WordPress 6.5 scheduled for February 13, 2024.
Also see the links under the Core-editor updates for 6.5 heading above.
Latest minor releaseMinor ReleaseA set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality.: 6.4.3
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 January 22 and January 29, 2024.
48 commits
64 contributors
60 tickets created
4 tickets reopened
67 tickets closed
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.
Update third-party GitHubGitHubGitHub is a website that offers online implementation of git repositories that 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/ Actions – #59805
Twenty Twenty-Four: Change font family slug to lowercase – #60325
Coding Standards
Add missing escaping functions to WP_Customize_Control and WP_Customize_Nav_Menu_Location_Control – #60324
Add missing escaping in Custom_Image_Header::step_2() – #59278
Fix some spaces on 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.-supports background
Remove unnecessary access and internal annotations from two functions in WP_REST_Templates_Controller – #60358
Use strict type check for in_array() in get_hooked_block_markup() – #60279
Docs
Add missing full stop in WP_Comment_Query::parse_query()DocBlockdocblock(phpdoc, xref, inline docs) – #60323
Fix a few typos in wp-includes/pomo/po.php – #60346
Fix typo in _get_block_template_file() DocBlock – #59651
Improve various globals documentation, as per docblock standards – #59255, #59651
Typo correction in wp_internal_hosts docblock – #60363
Editor
Add Block Bindings 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. helpers – #60282
Add original_source and author_text to the templates 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/. – #60358
Define the labels of the pattern categoryCategoryThe 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging.taxonomyTaxonomyA taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. – #60322
Ensure PHPUnit10 compatibility for ThemeJson 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. – #60305
Fix 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. application of custom root selector for styles – #60343
Fix back to items label capitalization for the pattern categories – #60322
Set show_tagcloud to false for Pattern Categories – #60119
Unset reference used in foreach statement – #60326
Update the ThemeJson unit test to cover custom CSSCSSCascading Style Sheets. feature – #60294
Update the WordPress packages to 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/ 16.7 RC2 version – #60315
fix classname output on blocks without layout – #60292
fix fluid font division by zero error when min and max viewport widths are equal – #60263
Amend PHPDocPHPDoc(docblock, inline docs) for hooked_block_{$hooked_block_type}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. – #59572, #60126
Introduce a new hooked_block_{$block_type} filter – #59572, #60126
General
Add $schema property to block and theme JSON files – #60255
HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. API
Scan all syntax tokens in a document, read modifiable text – #60170
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.
Add missing variable in string replacement – #59656
Improve edge case handling in WP_Translation_Controller – #59656
Introduce a more performant localization library – #59656
Rename WP_Translation_Controller::instance() method to get_instance() – #59656
Media
Redirect inactive attachment pages for logged-out users – #59866, #57913
Script Loader
Clarify in docs that wp_get_inline_script_tag() and wp_print_inline_script_tag() can take non-JSJSJavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. data – #60331
Load the modules to the footer in classic themes – #60240
Only emit CDATA wrapper comments in wp_get_inline_script_tag() for 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/. – #56313, #60320
Script Modules API: Rename wp_module to wp_script_module – #56313
Following the post Evolving the FSE Outreach Program, there was a transition period of six months after the 6.4 release and the end of Phase 2. Now let’s discuss what could happen after this period.
This post recommends the next steps. Before that, some clarification of terms might be in order:
Site builder = No code/low code user who builds sites for others
Extender: Developers/designers who build plugins and themes or work for agencies or as freelance developers/designers.
Because site builders and Extenders regularly intersect, the channel’s content and discussions will be relevant to both groups of users.
A good first step could be to rename the channel from #fse-outreach-experiment to #outreach, as it will be about more than FSE, and no longer an experiment.
Several projects could use SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. support in the WordPress space for discussion, clarification, and overall ruminating on future features coming to WordPress. A list of discussions, sharing, and information that could be shared in the channel follows. None of them are exclusive, but they made the list because they don’t necessarily fit other channels.
The ideas also don’t warrant a separate channel, but all ideas come from knowing that non-contributors need to connect with contributors. As noted in comments on the previous post, a clear outcome of the FSE Outreach program was that connecting in this channel facilitated participants’ first contributions and lowered the barrier to connecting with the open-source project.
The channel is a place for attendees and viewers of regular Developer Hours to connect with presenters. The discussion could cover the event’s topic beyond the live event. The same is true for the Hallway Hangouts. Resources for both events will be shared in the channel.
Once the Test team, or any other team, issues a new call for testing, the feedback would be surfaced here in a conversation about challenges and to help answer questions.
There might be a breaking change in an upcoming release that needs attention from extenders.The channel can provide space for additional discussion on workarounds, etc.
Excerpts from the Dev Chat agenda/summary of the user-facing updates from contributors can be shared, if they are relevant for site builders and extenders.
In collaboration with design and engineering teams, discussion from GitHubGitHubGitHub is a website that offers online implementation of git repositories that 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/ and TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. can be raised in the channel to solicit input from those interested in the topics.
The outreach channel is also the place to point people to from other networks (X, Mastodon, or Facebook) when there is a need to discuss issues/topics that are outside the scope of the Support team and require a WordPress space to get a few people in from other teams involved.
The channel could also be a resource for MeetupMeetupAll local/regional gatherings that are officially a part of the WordPress world but are not WordCamps are organized through https://www.meetup.com/. A meetup is typically a chance for local WordPress users to get together and share new ideas and seek help from one another. Searching for ‘WordPress’ on meetup.com will help you find options in your area. Organizers who have questions or need advice on facilitating local discussions about upcoming features.
Independent of the list of activities, the #outreach (working title) Slack channel will continue as a central point of contact with the community.
This can only be a group endeavor if we want to broaden the reach and be a welcoming place for people interested in particular focuses of the software. Quite a few people raised their hands to be part of a continuation of the outreach program, be it to participate in discussions or to follow future calls for testing. If you are interested, please let us know in the comments!
All feedback on this proposal is welcome. Here is a set of questions that could get you started:
Naming things is hard, so what do you think about the future name “outreach”? Any other ideas for a name?
What do you think about the eight ideas shared about what a conversation might look like in the channel?
Do you have any other ideas for community outreach that could have a place here?
Feedback by February 12th would be appreciated.
Nick Diego, Justin Tadlock, and I would like to invite contributors to a Hallway Hangout on February 20th, 2024, at 15:00 UTC to discuss this proposal, the comments, and the next steps.
These will focus on open proposals in coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. and release items.
Next week’s dev chat, a discussion opportunity is identified for this open proposal on core relating to major release Field Guides.
Could you help curate a Call for Volunteers to review the open proposals on Make/Core and create a list of unresolved ones to discuss during Dev Chat meetings?
On TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between January 15 and January 22, 2024:
New core contributor meeting – if you were not able to attend and would like to find out more, check out the link to the meeting in Slack on January 24, 2024 which includes useful information on getting started and the contributor mentorship program. The deadline for applications for the second cohort for the program is Wednesday, February 7, 2024.
Section Styling: some questions remain around CSS specificity to unblock this work. Whether that problem can be resolved determines whether this will be included in the release.
Font Library: biggest work continues to be the Font Library: refactor REST API which needs feedback. Please help review if you have experience with the 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/. and review the merge criteria for this feature..
Data Views: the default layout has been set to table layout for template, template parts, and patterns after feedback from design. A PR is in progress to stabilize the new Data Views for Patterns ahead of the release with the grid layout as the default.
Interactivity 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.: work continues for a public launch with 6.5 with great optimism that it will make the cut off.
Next 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.: 6.5
Any other updates?
Phase 3 media library meeting will take place on Thursday, 8 February 2024 at 00:00 GMT in the #core-media channel. The Media Component team is coordinating a meeting with the Editor team and other interested stakeholders to work on planning for the proposed Phase 3 Media Library.
Core-editor improvement – revisions in the site editor. This is a useful post for understanding some of the changes and new features to current revision functionality in the Site Editor aimed for 6.5 and the wider work in this area.
Important milestones in the Editor for 6.5 – useful post for contributors working or wishing to support 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/ repository with the scheduled 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. 1 for WordPress 6.5 scheduled for February 13, 2024.
Next minor releaseMinor ReleaseA set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality.: 6.4.3
Any other updates?
Earlier today there were four open tickets – update in 6.4 release leads channel.
These “CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. Editor Improvement…” posts (labeled with the #core-editor-improvementtagtagA 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 a series dedicated to highlighting various new features, improvements, and more from Core Editor related projects.
RevisionsRevisionsThe WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. are an integral part of the creation experience, providing a safety net and a way to see where you’ve been to know where to go next. It’s so important that there’s a dedicated area of focus for phase 3 efforts dedicated to the broader area of work! While lots of work lies ahead, WordPress 6.5 is slated to include some impactful changes and new features to current revision functionality in the Site Editor.
If you want to try out what’s shared below for yourself, head over to the post on Early Opportunities to Test WordPress 6.5 where you can quickly spin up your own test site to experience it for yourself and give feedback. Everything shared below is available as of 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/ 17.4 and planned for inclusion in WordPress 6.5.
Let’s look at a before and after
To help bring these changes to life, below is a video showcasing what’s written below. The “before” site is using WordPress 6.4.2 and the “after” site is using WordPress 6.4.2 with Gutenberg 17.5.1 installed. These test sites were pulled from Early Opportunities to Test WordPress 6.5 so anyone is welcome to explore:
Read a short summary of styling changes thanks to a new design
Alongside a new design showing more granular information, like a more granular timestamp, a short summary of changes made in each revision is now available. Combined, this greatly simplifies understanding what’s in each revision rather than relying on spotting visual changes.
View all style revisions thanks to pagination
Rather than showing just the last 100 revisions, all revisions are now available thanks to pagination. This both works around a technical limitation of 100 results per REST response and helps make navigating between revisions much easier than scrolling endlessly 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..
Toggle on the Style Book to get a different angle
In the same way you might be used to using the Style Book when making changes to your site in the Site Editor, you can now do the same when looking at different revisions to see changes that might not otherwise be visible on the current template. Just as when you use the Style Book normally, you can toggle it on and off as you’d like.
Rely on full revisions for everything
While the undo and redo buttons have a role to play, having access to full revision history allows for a much greater understanding of changes, their impact, and actions one can take. While this was mentioned in a previous post, revisions for templates and template parts are finally slated for inclusion in Core for WordPress 6.5. This means out of the box folks can browse changes to templates, template parts, and styles providing a nice safety net.
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 January 15 and January 22, 2024.
35 commits
62 contributors
67 tickets created
10 tickets reopened
72 tickets closed
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.
Introduce functions to check whether WordPress is serving a 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/. request – #42061
Build/Test Tools
Remove leftover trailingslashit() calls in WP_Textdomain_Registry tests – #58919
Expand “imagemin” Grunt task to cover default themes – #58996
Fix var types of parameters in sanitize_option() and sanitize_option_{$option} – #60214, #59651
Format new_admin_email_content placeholders as a list – #60262
Editor
Support deferred 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. variation initialization on the server – #59969
Embeds
Ensure the deprecated function print_emoji_styles isn’t used – #59892. See: #58775
HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.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.
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.
Cache list of language file paths in WP_Textdomain_Registry – #58919
Correctly invalidate language file paths in WP_Textdomain_Registry – #58919
Do not use trailingslashit in WP_Textdomain_Registry – #58919
Fix duplicate determine_locale() tests added in [57286] – #58696
Prevent PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher warning in WP_Textdomain_Registry – #58919
Media
Inline image CSSCSSCascading Style Sheets. width to backfill width and height attributes – #59352
Redirect inactive attachement pages for logged-out users – #59866, #57913
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/. localization on install page – #58696
You must be logged in to post a comment.