The WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. development team builds WordPress! Follow this site for general updates, status reports, and the occasional code debate. There’s lots of ways to contribute:
Found a bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.?Create a ticket in our bug tracker.
WordPress 6.0 makes it easier to lock blocks using the new controls modal. The release also includes two new settings to choose who can access this option and when.
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. Editor
The new canLockBlocks setting can disable the feature globally or conditionally. Example:
add_filter(
'block_editor_settings_all',
function( $settings, $context ) {
// Allow for the Editor role and above - https://wordpress.org/support/article/roles-and-capabilities/.
$settings['canLockBlocks'] = current_user_can( 'delete_others_posts' );
// Only enable for specific user(s).
$user = wp_get_current_user();
if ( in_array( $user->user_email, [ 'user@example.com' ], true ) ) {
$settings['canLockBlocks'] = false;
}
// Disable for posts/pages.
if ( $context->post && $context->post->post_type === 'page' ) {
$settings['canLockBlocks'] = false;
}
return $settings;
},
10,
2
);
Blocks
The lock property allows hide controls on a block type level. Example:
A powerful feature of the @wordpress/create-block package is the ability to create templates to allow customization of how a 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. is structured.
WordPress 6.0 introduces some new template variables to allow even more customization. Templates can now use the customScripts variable to create new entries in the scripts property of the package.json file and while it was already possible to define dependencies, it is now also possible to defined a list of development dependencies using the npmDevDependencies variable. In addition to these new template variables, the @wordpres/env package will automatically be added to the list of devDependences when the template uses the wpEnv template variable or if the —wp-env flag is passed as a command line argument.
Now that WordPress 6.0 has entered the Release Candidaterelease candidateOne of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). phase, the following policies are in place.
These policies mainly cover how and when CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. committers can commit. For non-committing contributors, this post may help explain why 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. makes a certain decision.
String Freeze
To allow the Polyglots teamPolyglots TeamPolyglots Team is a group of multilingual translators who work on translating plugins, themes, documentation, and front-facing marketing copy. https://make.wordpress.org/polyglots/teams/. time to get their local language’s translationtranslationThe process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. of WordPress ready, no new strings are permitted to be added to the release. Existing strings can be removed and/or duplicated if needed.
Seek guidance from the Polyglots team leadership for any strings reported as buggy. A buggy string is one that can not be translated to all languages in its current form.
Tickets on the WordPress 6.0 milestone
For the remainder of the cycle, only two types of tickets may be placed on/remain on the 6.0 milestone:
Regressions: bugs that have been introduced during the WordPress 6.0 development cycle, either to existing or new features.
Test suite expansion: tests can be committed at any time without regard to code or string freezes. This can cover either new or existing features.
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. is now WordPress 6.1-alpha
WordPress 6.0 was recently forked to its own 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"., trunk is now open for commits for the next version of the software.
Backporting to the 6.0 branch
Backporting commits of production code (that is, anything that ends up in the zip file) now requires double sign-off by two core committers. The dev-feedback keyword should be used to request a second committer’s review, dev-reviewed should be added to indicate a second committer has reviewed and approved the commit to the 6.0 branch.
Commits to the test suite do not require double sign-off.
WordPress 6.0 Release Candidate 1 (released on May 3, 2022). This was the hard string freeze for the 6.0 and 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". for the release.
3. Blogblog(versus network, site) posts of note to coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.
Key links for 6.0 and updates from the squad will be in the agenda item 4, after these blog posts.
If you have any items for Open Floor, please add them in the comments below.
If you are a component maintainer and wish to raise a ticketticketCreated for both bug reports and feature development on the bug tracker. in dev chat or give an update, you can also add information in the comments section.
Could you help with writing the summary from dev chat for a future meeting? Comment below or message core team reps @marybaum and @audrasjb in the Core Slack channel.
@spacedmonkey: Several 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/ PRs ready for review
@spacedmonkey: Posted 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
a description of how developers are supposed to work with that change.
Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase. for several recent updates
@spacedmonkey: Planning to work on 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 full site editing next; some examples:
We’re seeking 1-2 POCs for this group; if you’re interested, please comment here 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.” in SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/.
@flixos90: Is there any update on the work to refine the two existing experimental Site Health modules to make them non-experimental and eventually merge to coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.?
@furi3r: We should go over them again and take another look
@spacedmonkey: Should we use next week’s meeting to decide what we want to get merged into 6.1
@flixos90: Great idea, as well as looking owners for whatever we decide on
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/.
@flixos90: Decision has been made to follow WP core’s versioning approach for our 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 based on the vote in Define plugin versioning approach #300, so next release will be 1.1.0.
Before 1.0.0, we published every two weeks, which is the minimum but requires some additional maintenance and overhead, so a timeline of four weeks or more is probably better. At the same time, we don’t want to go too long and lose momentum.
@adamsilverstein: Monthly feels straightforward to keep track of; longer gets more difficult
@eugenemanuliov: Yes, 4 weeks seems to be most appropriate
@jeffpaul: 10up 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. team checks what’s releasable on the first day of the month and determines if it requires a major, minor, or no release. If there’s a release, it’s done in a subsequent week that month.
@flixos90: Could also do monthly, e.g. third Monday of the month. Will add to the options in the issue.
@jb510: Research: Impact of additional WebP images on upload #289 focuses on the file system impact of WebP. But when an image is uploaded to a post, there is the time it takes the original to upload, but then the user has to wait while additional image sizes are generated and the progress bar for that action completes. We should then consider the impact of WebP generation has on that already sometimes frustrating delay between generating JPEG only vs JPEG+WebP. Want to make sure this is being considered. I recommend moving this to the background.
@jeffpaul: Agreed, that UXUXUser experience is quite painful
@adamsilverstein: Moving to the background would make sense, as that image generation is slow and can break if you navigate away from the editor. Related Gutenberg issue.
@adamsilverstein: Note that the progress bar only shows upload progress, not processing progress
@pbearne: Once WP has the image, we should be able to release the editor and do the processing in a new thread
@jb510: For scope, consider 1) measuring impact of additional processing/completion time due to WebP and 2) finding a way to move that out of blocking the user from continuing with what they wanted to be doing
Here are notes to a few further adjustments coming to WordPress 6.0 for developers.
Upgrade/Install
Replace a 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 description on the Plugins > Add New Screen
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.#55480 introduces the plugin_install_descriptionfilterFilterFilters 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. in the WP_Plugins_Install_List_Table.
This new filter allows developers to modify or replace the description of a plugin on the Plugins > Add New and/orNetworknetwork(versus site, blog)Adminadmin(and super admin) > Plugins > Add New screens.
The following example shows how to replace the description of specific plugin:
function wporg_plugin_install_description( $description, $plugin_data ) {
if ( 'my-plugin' === $plugin_data['slug'] ) {
$description = esc_html__( 'A new description for My Plugin', 'textdomain' );
}
return $description;
}
add_filter( 'plugin_install_description', 'wporg_plugin_install_description', 10, 2 );
Add ability to filter whole notification email in retrieve_password
New WordPress release introduces two new 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. to help developers to filter retrieve password emails:
send_retrieve_password_email can be used to filter whether to send the retrieve password email;
retrieve_password_notification_email can be used to filter the contents of the reset password notification email sent to the user.
For consistency with some similar filters like send_password_change_email or send_email_change_email, and for more flexibility, pass $user_login and $user_data parameters directly to the new send_retrieve_password_email and retrieve_password_notification_email filters.
In large 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 networks, the site icons added to the toolbar navigation in WordPress 5.8 could make pages load significantly slower. To remove these icons, use the wp_admin_bar_show_site_icons filter.
Without using the filter, these icons now include lazy loading when it is enabled for images. The loading attribute can be removed if it does not fit a site specifically in this context.
Updated 2022-05-07 with a table of content, two more 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
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. and some formatting –bph
Removed bottom margin on LineHeightControl component
Several UIUIUser interface components currently ship with styles that give them bottom margins. This can make it hard to use them in arbitrary layouts, where you want different amounts of gap or margin between components.
To better suit modern layout needs, we will gradually deprecate these bottom margins. A deprecation will begin with an opt-in period where you can choose to apply the new margin-free styles on a given component instance. Eventually in a future version, the margins will be completely removed.
In WordPress 6.0, the bottom margin on the LineHeightControl component has been deprecated. To start opting into the new margin-free styles, set the __nextHasNoMarginBottom prop to true:
Props to @0mirka00 for writing this dev notedev 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
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..(top)
Unrecognized 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. preservation
We’ve started making strides in preserving unrecognized content in the editor, also called (sometimes incorrectly) “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.” or “missing.” In situations where the editor is unable to validate a loaded block against its implementation we run into numerous cases where content has previously been lost or corrupted, notably when inner blocks are involved.
Currently, we’re on the journey to preserving that original unrecognized content but have many corners in the project to update before it’s finished. Notably, when loading posts in the editor or in the code view that content will be preserved as it was loaded. Surprisingly, this lets us do something we’ve never been able to do before: intentionally create certain kinds of broken blocks within the code editor, or modify and fix blocks in the code editor whose block implementation is missing.
Still on the list to update are smaller parts of the flow such as the array of confusing block resolution dialogs and operations as well as certain validation steps that currently fail but shouldn’t.
In short, if you’ve been frustrated by the editor breaking your posts as soon as you hit “save” then good news is coming in 6.0.
Until WordPress 6.0, building blocks inside plugins was the only way possible if you wanted to use block.json. This remains to be the recommended way to build Custom blocks going forward. Blocks add functionality and therefore should be built as plugins that stay active even when a new theme is enabled.
There are however instances where the styling and functionality of a block is so tightly coupled with a theme that it doesn’t make sense to have a block active without a given theme. This is true when building custom solutions, and the blocks are site-specific and not used for other instances. Furthermore, from discussion with agency project managers and developers, it turns out that there are considerable deployment costs when separating comprehensive solutions.
Each implementation had to reinvent a way to register blocks within themes, as WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. wouldn’t allow for it. With 6.0 the registration of blocks using block.json from within a theme is now technically standardized. You can use the same register_block_type function as you would inside a 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 and all the assets that you may register in the block.json file like the editorScript, style, etc get enqueued correctly.
Comments Query Loop: An advanced block that displays post comments and allows for various layouts and configurations.
Comment Template: Contains the block elements used to display a comment, such as the title, date, author, 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. and more.
Comment Edit Link: Displays a link to edit the comment in the WordPress Dashboard. This link is only visible to users with the edit comment capability.
Comments Pagination: Displays next/previous links to paginated comments where this has been enabled in the comment settings in the WordPress adminadmin(and super admin)
Previous Page: Displays the link to the previous page of comments.
Page Numbers: Displays a list of page numbers for comments pagination.
Next Page: Displays the link to the next page of comments.
The legacy Post Comments block, which directly renders the comments.php file, has been deprecated and hidden. It will still work for themes currently using it, but it won’t appear in the inserter.
The new set of blocks provides almost the same functionalities with the benefit that the layout and styles can be customized from the Editor. However, if any user wants to re-enable the Post Comments legacy block, they can use the block registration filters and adapt it to their needs. For example, this piece of code shows the legacy block in the inserter again and removes the “deprecated” from the title:
Gallery block – Ability to adjust gap between images added
In order to implement this the spacing of the Gallery images had to be changed from a right margin setting to the CSSCSSCascading Style Sheets.gap property. Themes or plugins that use a right margin setting to manually adjust the Gallery image spacing may need to be updated to instead override the gap setting.
Default gap changed
The new block editor block gap support functionality has been used to implement this and this adds a default block gap of 0.5em. For some themes that don’t explicitly set this gap, the default will change from the previous 16px to 0.5em. If plugin or theme developers want to ensure that the 16px gap remains the following CSS can be added to the theme, or site custom CSS:
Some themes may have depended on the bottom margin set on the gallery images to provide a gap between two galleries. Because the gallery now uses the flex gap for spacing this bottom margin is no longer set. Themes that were relying on this unintended side effect of the image margins will need to add the following CSS in order to maintain a gap between galleries:
.wp-block-gallery {
margin-top: 16px;
}
Gallery gutter CSS var deprecated
To keep the naming of the gap setting consistent the --gallery-block--gutter-size CSS var has been deprecated and replaced with --wp--style--gallery-gap-default. --gallery-block--gutter-size will continue to work in release 6.0 and will be removed in 6.1.
Theme authors should be able to provide compatibility for WP 5.9 and 6.0+ with the following:
Block developers sometimes need to restrict where users can place their blocks. For that, developers already count on APIs like block.json‘s parent property or the allowedBlocks option of the useInnerBlocksProps hook that allowed developers to express some basic, direct parent-children relations between blocks.
Since WordPress 6.0, the ancestor property makes a block available inside the specified block types at any position of the ancestor block subtree. That allows, for example, to place a ‘Comment Content’ block inside a ‘Column’ block, as long as ‘Column’ is somewhere within a ‘Comment Template’ block. In comparison to the parent property, blocks that specify their ancestor can be placed anywhere in the subtree, while blocks with a specified parent need to be direct children.
This property admits an array of block types in string format, making the block require at least one of the types to be present as an ancestor.
Block developers can also combine parent with ancestor inside block.json and use them together to express more complex relations if needed. For example:
Parent [ 'A' ] and ancestor [ 'C' ] would work as ”parent A and ancestor C”.
Parent [ 'A', 'B' ] and ancestor [ 'C', 'D' ] would work as ”parent (A or B) and ancestor (C or D)”.
Note that there are some edge cases uncovered by this 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., like blocks that would require two or more different ancestor types simultaneously.
Props to @darerodz for writing this dev note. (top)
Changes to media object returned from the WordPress data module
A small change has been made to the way the media objects are retrieved using the data module. The “caption”, “title” and “description” properties are returned as strings when using the `wp.data.select(‘core’).getRawEntityRecord` selector or the `wp.coreData.useEntityProp` hook.
Before
const [ renderedTitle ] = useEntityProp( 'root', 'media', id )?.rendered;
After
const [ renderedTitle ] = useEntityProp( 'root', 'media', id );
Some low-impact APIs that were deprecated on WordPress 5.4 have now been removed:
getReferenceByDistinctEdits selector.
PreserveScrollInReorder component.
dropZoneUIOnly prop in the MediaPlaceholder component.
isDismissable prop in the Modal component.
wp.data.plugins.control data module.
You can find more details on the #38564 removing these APIs
Slated to be removed in WordPress 6.2
The APIs listed have been deprecated in WordPress 5.3 and were forwarded in the background to the new ones already. They will be entirely removed in WordPress 6.2.
To allow the setting of a custom opacity for each 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., the Separator block has been updated to use the block that supports color settings. The custom opacity can then be set using the alpha channel setting of the selected color.
The HMTL structure of the block is unchanged, and all the existing classes are still in place, and two additional classes have been added – .has-alpha-channel-opacity and .has-css-opacity.
These new classes have been added to maintain the default 0.4 opacity for all existing blocks in both the editor and the frontend. The opacity for existing Separator blocks will only change if the block itself has its color setting changed. If theme authors have opted in to block styles with add_theme_support( 'wp-block-styles' ); and wish to maintain the default 0.4 opacity setting for both new and old blocks the following CSSCSSCascading Style Sheets. can be added:
WordPress 6.0 no longer ignores the exceptions thrown by the resolvers.
In WordPress 5.9 and earlier, an exception thrown inside the resolver kept it in the resolving state forever. It never got marked as finished. In WordPress 6.0, the resolver state is set to error and the exception is re-thrown. This backwards compatibility-breaking change affects both resolvers from newly registered stores and the resolvers from the WordPress stores, e.g. the getEntityRecord resolver from the coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. store.
Example:
Let’s register an example store where the resolver always throws an error:
const temperatureStore = wp.data.createReduxStore( 'my-store', {
selectors: {
getTemperature: ( state ) => state.temperature
},
resolvers: {
getTemperature: () => { throw new Error( 'Network error' ); }
},
reducer: () => ({}), // Bogus reducer for the example
} );
wp.data.registerStore( temperatureStore );
Using that resolver has different results in different WordPress versions:
Error handling is now supported, so this promise gets rejected with Error( ‘Networknetwork(versus site, blog) error’ )
The error details may be retrieved using the hasLastResolutionFailed, getLastResolutionFailure, and `getResolutionState` 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.-selectors available on every registered store:
The state returned by getResolutionState is one of: “resolving”, “finished”, “error”, undefined. The undefined indicates that the resolver hasn’t been triggered yet.
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 April 25 and May 2, 2022.
72 commits
55 contributors
43 tickets created
8 tickets reopened
65 tickets closed
The Core team is currently working on the 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., WP 6.0, and released 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. 3 and Beta 4 🛠
TicketticketCreated for both bug reports and feature development on the bug tracker. numbers are based on the Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.
Code changes
Administration
Trigger a notice for incorrect add_menu_page() parameter – #40927
Bootstrap/Load
Avoid a PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher warning when setting the $pagenow global in wp-includes/vars.php – #54700
Move some more administration-related 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. to admin-filters.php – #54795
Move administration related hooks to admin-filters.php – #54795
Build/Test Tools
Update the NPM dependencies to the latest versions – #54727
Add unit tests for wp_fuzzy_number_match() – #54239
Add unit tests for some XML-RPC functions – #53490
Ignore EOL differences in Webfonts 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. tests – #54725
Bundled Themes
Note visually hidden text for translators – #55591
Update NPM dependencies for default themes – #54727
Twenty Twenty-One: Make translator comments referencing the post title consistent – #55564
Twenty Twenty-Two: Add three style variations – #55433
Code Modernization
Rename parameters that use reserved keywords in wp-includes/class-wp-comment-query.php – #55327
Rename parameters that use reserved keywords in wp-includes/class-wp-embed.php – #55327
Rename parameters that use reserved keywords in wp-includes/class-wp-image-editor-gd.php – #55327
Rename parameters that use reserved keywords in wp-includes/class-wp-image-editor.php – #55327
Rename parameters that use reserved keywords in wp-includes/class-wp-network-query.php – #55327
Rename parameters that use reserved keywords in wp-includes/class-wp-query.php – #55327
Rename parameters that use reserved keywords in wp-includes/class-wp-query.php – #55327
Rename parameters that use reserved keywords in wp-includes/class-wp-site-query.php – #55327
Rename parameters that use reserved keywords in wp-includes/class-wp-term-query.php – #55327
Rename parameters that use reserved keywords in wp-includes/class-wp-user-query.php – #55327
Rename parameters that use reserved keywords in wp-includes/class.wp-scripts.php – #55327
Rename parameters that use reserved keywords in wp-includes/class.wp-styles.php – #55327
Rename parameters that use reserved keywords in wp-includes/comment-template.php – #55327
Rename parameters that use reserved keywords in wp-includes/deprecated.php – #55327
Coding Standards
Remove extra alignment level in the data provider for wp_validate_boolean() tests – #54725, #54728
Remove extra spaces in docblocks of the Walker_PageDropdown class – #54728
Comments
Avoid DB error in comment 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. queries – #55218
Docs:
Add missing documentation for WP_*_Query::get_search_sql() method parameters – #54729
Adjust comments in Gruntfile.js per the documentation standards – #54729
Clarify the name and description of some parameters in the Walker class – #54729
Correct alignment for the customize_nav_menu_available_itemsfilterFilterFilters 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.DocBlockdocblock(phpdoc, xref, inline docs) – #54729
Correct parameter types for serialize_block() and serialize_blocks() – #55648, #54729
Corrections and improvements to docblocks for function and hooks relating to fatal error handling – #54729
Docblock adjustements in the Walker class – #54729
Formatting corrections for various docblocks – #54729
Further clarify a comment for the main part of wp-login.php – #54746
Improve documentation of the walker argument for various functions – #54729
Make the @returntagtagA 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.) for Translation_Entry::key() more precise – #55640
Remove @return void from various DocBlocks – #54729
Remove double spaces in tests/phpunit/README.txt – #55637
Use third-person singular verbs for function descriptions in Core Comment API and Comment template functions – #54729
Fix core ‘Featured’ pattern categoryCategoryThe 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. registration – #55567
Register ‘lock’ attribute for every 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. on the server – #55567
Show comment previews in the Comment 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. – #55634
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/.
Correct the schema for the wp/v2/block-directory/search endpoint – #53621
Fixes /wp/v2/pattern-directory/patterns endpoint response for slug parameter – #55617
Increase cache hits in WP_Term_Query when using include and exclude parameters – #55352
Themes
Add internal-only 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.’s webfonts handler (stopgap) – #55567, #46370
Remove ‘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/’ as translationtranslationThe process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. context in _wp_theme_json_webfonts_handler() – #55567, #46370
Tools
Further automate backporting from Gutenberg to Core – #55642
Upgrade/Install
Prevent DB errors caused by web fonts API – #55632