Welcome back to a new issue of Week in Core Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on Trac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between November 8 and November 15, 2021.
- 116 commits (!)
- 204 contributors (!)
- 57 tickets created
- 10 tickets reopened
- 89 tickets closed
The Core team is currently working on the major release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope., WordPress 5.9 🛠
Ticket Created for both bug reports and feature development on the bug tracker. numbers are based on the Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.
Code changes
About/Help
- Add commas to end of multi-line array items – #54357
- add docs links to several screens – #54357
Administration
- Restores “Customize” menu item for non-block Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. themes and moves for block themes – #54418
Bootstrap/Load
- Add
HTTP/3
as a valid HTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. protocol. – #54404 - Bootstrap/Load: Check
$_SERVER['SCRIPT_NAME']
exists before passing to strpos()
in wp_fix_server_vars()
– #54142
- Cache the results of
PHP_CodeSniffer
across workflow runs – #49783 - Exclude plugins and non-bundled themes from PHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher compatibility scans – #54425
- Make adjustments to how Quick Draft tests confirm expected behavior – #54409
- Mock no results remote request in WP_REST_Block_Directory_Controller:: get_items() – #54420
- Mock remote request for
WP_REST_Block_Directory_Controller::get_items()
– #54420 - Mock remote request for unknown plugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party in
WP_REST_Plugins_Controller::create_item()
– #54420 - Restore the https HTTPS is an acronym for Hyper Text Transfer Protocol Secure. HTTPS is the secure version of HTTP, the protocol over which data is sent between your browser and the website that you are connected to. The 'S' at the end of HTTPS stands for 'Secure'. It means all communications between your browser and the website are encrypted. This is especially helpful for protecting sensitive data like banking information. URL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org for browserify-aes – #54337
- Update all 3rd party GitHub GitHub 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 to the latest versions – #53363
- Change default GitHub branch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch". to trunk A 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. – #54399
- Update qUnit test fixtures after [52128] – #54336
Bundled Theme
- Display required text field in core themes – #54392
- Import Twenty Twenty-Two, the new default theme for WordPress 5.9 – #54318
- Twenty Eleven: Improve comment form styling for required fields – #54408
- Twenty Nineteen: Apply coding standards fix from running
composer format
– #54392 - Twenty Twenty-One: Add privacy policy link to footer – #53445
- Twenty Twenty-One: Correct default image alignment in the editor – #53809
- Twenty Twenty-One: Prevent printing skip link focus fix when
SCRIPT_DEBUG
is enabled – #54429 - Twenty Twenty-Two: Import the
assets
directory from GitHub – #52081 - Twenty Twenty-Two: Import the latest changes from GitHub – #54318
Coding Standards
- Minor alignment fix after [52058] – #52058
- PHP Code style errors – #43700
- PHP Code style errors – #43700
- Rename the
$gzData
argument to $gz_data
in WP_Http_Encoding::compatible_gzinflate()
– #53359 - Revert accidental image changes in [52171] – #54168
- Revert unrelated change to
wp_send_user_request()
– #43700 - Use strict comparison in
wp-admin/includes/ms.php
– #47422
- Don’t output “cancel comment reply link” if comments aren’t threaded – #37267
- Use
get_comment_author()
to retrieve the comment author name in get_comment_reply_link()
– #53678
Database
- WPDB: Capture error in
wpdb::$last_error
when insert fails instead of silently failing for invalid A 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. data or value too long – #37267
Docs
- Add missing documentation for the
$javascript
parameter of the wp_inline_script_attributes
filter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. – #53399 - Avoid using “CPT” instead of “custom post type WordPress can hold and display many different types of content. A single item of such a content is generally called a post, although post is also a specific post type. Custom Post Types gives your site the ability to have templated posts, to simplify the concept.” – #53399, #54335, #54336
- List the expected return type first in a few functions – #53399
Editor
- Update SVN Subversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. props to ignore new asset files – #54337, #53361
- Update SVN props to ignore new asset files – #54337, #53361
- Add documentation for the
$block_editor_context
parameter of the block_editor_rest_api_preload_paths
hook – #52920, #53399 - Site Editor and PHP changes from Gutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 10.1 – 11.9 – #54337
- Site Editor: Load as full screen by default – #54337
- Add Navigation Area infrastructure – #54337
- Add block theme infrastructure – #54335
- Add get_query_pagination_arrow function to core
- Add public functions for interacting with global styles & settings – #54336
- Fix fatal call to add_query_args() – #54337
- Fix how the Site Editor is linked to – #54337
- Fix incorrect access of ID field – #54337
- Global Styles Rest endpoints – #54336
- Global styles user content escaping – #54336
- Load iframed assets in Site Editor – #54337
- Update wordpress packages – #54337
- Fix Linting error affecting trunk
- Update wordpress packages – #54337
- Update wordpress packages – #54337
- Update block-theme-pl_PL.mo file. – #54336
Embeds
- Conditionally enqueue
wp-embed
only if needed and send ready
message in case script loads after post embed windows – #44632, #44306 - Fix inclusion of
wp-embed-template
script and style when SCRIPT_DEBUG
is disabled – #44632 - Fix parsing of post embeds in
wp_filter_oembed_result()
by appending wp-embed
script instead of prepending it in get_post_embed_html()
– #44632
External Libraries
- Update the
regenerator-runtime
package to version 0.13.9
– #54027 - Update ‘react React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/.’ and ‘react-dom’ – #54337
General
- Add “noopener” to
wp_list_bookmarks()
output – #53839 - General: Convert
wp_list_filter()
into a wrapper for wp_filter_object_list()
– #53988 - General: Minor fixes to Global Style related code – #54336
HTTP API An 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.
- Ensure value returned from
'http_allowed_safe_ports'
is an array to avoid PHP 8+ TypeError fatal error – #54331 - Introduce
'http_allowed_safe_ports'
filter in wp_http_validate_url()
– #54331
Internationalization
- Add language switcher on login/registration screens – #43700
- Add missing translation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. wrapper for the Global Styles post type description – #54336
Login and Registration
- Fix failing test for “email already exists” registration error improvement – #53631
- Improve “email already exists” registration error message – #53631
- Improve messaging for invalid log-out nonces – #52600
- Pass
$errors
parameter to registration_redirect
filter – #53992 - Wrap long usernames in login error message – #37617
Mail
- Add
wp_mail_succeeded
hook to wp_mail
– #53826
- Add “webp” extension to wp.media.controller.Library
isImageAttachment
– #53917 - Change upload button to a file input for better e2e targeting – #54168
- Featured image A featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts. modal loads only selected image – #42937
- Featured image modal loads only selected image – #53765
- Refine the heuristics to exclude certain images and iframes from being lazy-loaded to improve performance – #53675, #50425
- Revert media uploader input change in [52059] – #54168, #54411
- Add audible notice on menu item add or remove – #53840
- Correct docs for
$_meta_value
parameter in xxx_{$meta_type}_meta
hooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. – #53102
Posts, Post Types
- Add
$old_status
parameter to {$new_status}_{$post->post_type}
action – #36180 - Mark the
wp_global_styles
post type as _builtin
– #54336 - Remove
gutenberg
text domain from post type strings – #54336, #54337 - Update
_edit_last
meta when posts are edited in bulk – #42446
Quick/Bulk Edit
- Disable auto-correct for slugs – #50499
REST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.
- Add /wp/v2/block-navigation-areas endpoint – #54393
- Add batch support for posts and terms controllers – #53063
- Expose the site icon in the REST API index – #52321
- Introduce Menu management endpoints – #40878
- Regenerate wp-api-generated.js after [52068] – #53063
- Remove experimental block menu item types – #40878
Revisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision.
- Introduce
wp_get_post_revisions_url()
to get URL for editing revisions – #39062
Taxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies.
- Allow
get_*_*_link()
and edit_term_link()
functions to accept a term ID, WP_Term
, or term object – #50225 - Change some static strings to registration labels – #43060
- Clarify the taxonomy labels for customizing the field descriptions on Edit Tags screen: – #43060
- Display update notices when adding terms – #42937
- Document that the
get_terms
filter can have null
for $taxonomies
– #54222
Template
- Fix “undefined index: 00” when archive month query is empty in
wp_title()
– #31521
Themes
- Avoid fatal error loading admin (and super admin) styles when
SCRIPT_DEBUG
is false
– #54401, #54336 - Check both parent and child themes for a
theme.json
file – #54401 - Force a scrollbar on the Themes page to prevent visual shake on hover – #53478
- Twenty Twenty-Two is now the default theme – #54318
- Update theme.json JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. classes for WordPress 5.9 – #54336
- Hide Customize from admin bar when using a block theme – #54337
Upgrade/Install
- Deactivate the Gutenberg plugin if its version is 11.8 or lower – #54405
- Update screen reader text counts in adminbar – #29022
Users
- Introduce
wp_list_users()
function – #15145 - Prevent infinite loop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. when using capability checks during
determine_current_user
on multisite Used 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 – #53386
- Use
isset()
in WP_Widget:: display_callback()
to support ArrayIterator
and ArrayObject
– #52728 - Wraps long widget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. titles in classic Widgets screen – #37451
Props
Please note that it was the most prolific week since we restarted the Week in Core blog (versus network, site) posts last year!
Thanks to the 204 (!) people who contributed to WordPress Core on Trac last week: @hellofromTonya (28), @audrasjb (21), @sabernhardt (14), @desrosj (11), @sergeybiryukov (11), @costdev (10), @johnbillion (9), @oandregal (8), @spacedmonkey (7), @peterwilsoncc (7), @poena (6), @swissspidy (6), @afercia (6), @youknowriad (6), @noisysocks (5), @davidbaumwald (5), @hellofromtonya (4), @birgire (4), @TimothyBlynJacobs (4), @SergeyBiryukov (4), @mukesh27 (3), @Mamaduka (3), @adamsilverstein (3), @antonvlasenko (3), @aristath (3), @pento (3), @dd32 (3), @chaion07 (3), @westonruter (3), @jorbin (3), @TobiasBg (2), @chrisvanpatten (2), @joedolson (2), @soean (2), @dilipbheda (2), @manishamakhija (2), @kjellr (2), @garrett-eclipse (2), @flixos90 (2), @kafleg (2), @Clorith (2), @dlh (2), @Boniu91 (2), @justinahinon (2), @ryelle (2), @ocean90 (2), @mte90 (2), @hareesh-pillai (2), @jrf (2), @webcommsat (2), @drewapicture (2), @tobifjellner (2), @bgardner (1), @rviscomi (1), @sourav926 (1), @jonoaldersonwp (1), @azaozz (1), @briceduclos (1), @colorful-tones (1), @tweetythierry (1), @pbearne (1), @sebastianpisula (1), @aaroncampbell (1), @kapilpaul (1), @xknown (1), @chriscct7 (1), @donmhico (1), @gziolo (1), @malthert (1), @greenshady (1), @nacin (1), @rohan013 (1), @bernhard-reiter (1), @ntsekouras (1), @tw2113 (1), @Nikschavan (1), @keyur5 (1), @paaljoachim (1), @jdy68 (1), @dgwyer (1), @almendron (1), @kallookoo (1), @zieladam (1), @palmiak (1), @andraganescu (1), @dingo_d (1), @isabel_brison (1), @utz119 (1), @kadamwhite (1), @scruffian (1), @NateWr (1), @schlessera (1), @Spacedmonkey (1), @ribaricplusplus (1), @talldanwp (1), @wpscholar (1), @pgking (1), @andynick (1), @richtabor (1), @kraftbj (1), @dimadin (1), @gregrickaby (1), @ellenbauer (1), @jffng (1), @dansoschin (1), @karmatosed (1), @littlebigthing (1), @williampatton (1), @onemaggie (1), @matveb (1), @mburridge (1), @mtoensing (1), @nickcernis (1), @nielslange (1), @wparslan (1), @georgestephanis (1), @davidkryzaniak (1), @lukecarbis (1), @galbaras (1), @jdgrimes (1), @justindocanto (1), @kwisatz (1), @liammitchell (1), @lucasw89 (1), @nettsite (1), @dpegasusm (1), @nlpro (1), @procodewp (1), @psufan (1), @richardfoley (1), @skunkbad (1), @travisnorthcutt (1), @fpcsjames (1), @asif2bd (1), @zoiec (1), @ianhayes94 (1), @david.binda (1), @mista-flo (1), @jeffpaul (1), @bravokeyl (1), @gkloveweb (1), @hitendra-chopda (1), @ovann86 (1), @anthonyeden (1), @pankajmohale (1), @sabrib (1), @xkon (1), @dlt101 (1), @mnelson4 (1), @datainterlock (1), @anandau14 (1), @woodyhayday (1), @henrywright (1), @aadilali (1), @jeremyescott (1), @davidmosterd (1), @herregroen (1), @michelwppi (1), @kebbet (1), @iaaxpage (1), @mclaurent (1), @theMikeD (1), @paulschreiber (1), @jeremyfelt (1), @dontgo2sleep (1), @swb1192 (1), @afragen (1), @JeffPaul (1), @Collizo4sky (1), @antpb (1), @hasanuzzamanshamim (1), @jigneshnakrani (1), @sourovroy (1), @rachelbaker (1), @soniakash (1), @benitolopez (1), @danielbachhuber (1), @PieWP (1), @szaqal21 (1), @mjulian7 (1), @pputzer (1), @mamaduka (1), @karpstrucking (1), @mcjambi (1), @ashfame (1), @annezazu (1), @calebwoodbridge (1), @guillaumeturpin (1), and @timothyblynjacobs (1).
Congrats and welcome to our 36 (!!) new contributors of the week: @manishamakhija, @rviscomi, @briceduclos, @keyur5, @kallookoo, @pgking, @andynick, @dansoschin, @mburridge, @mtoensing, @nickcernis, @wparslan, @justindocanto, @kwisatz, @liammitchell, @lucasw89, @nettsite, @dpegasusm, @psufan, @skunkbad, @zoiec, @ianhayes94, @anthonyeden, @sabrib, @dlt101, @datainterlock, @woodyhayday, @aadilali, @mclaurent, @dontgo2sleep, @swb1192, @hasanuzzamanshamim, @benitolopez, @mjulian7, @mcjambi, @calebwoodbridge. ♥️
Core committers: @hellofromtonya (23), @desrosj (18), @noisysocks (14), @joedolson (12), @sergeybiryukov (8), @jorgefilipecosta (7), @davidbaumwald (6), @peterwilsoncc (5), @timothyblynjacobs (5), @westonruter (4), @johnjamesjacoby (2), @jorbin (1), @johnbillion (1), @spacedmonkey (1), @adamsilverstein (1), @ocean90 (1), @youknowriad (1), @flixos90 (1), @antpb (1), @jffng (1), and @ryelle (1).
#5-8-2, #5-9, #core, #week-in-core