A Week in Core – September 5, 2022

Welcome back to a new issue of Week in CoreCore 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 TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between August 29 and September 5, 2022.

  • 56 commits
  • 47 contributors
  • 64 tickets created
  • 5 tickets reopened
  • 40 tickets closed

The Core team is currently working on the next major releasemajor 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., WP 6.1 🛠

Ticketticket 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

Build/Test Tools

  • Correct the context variable being used when auto-retrying failed and cancelled workflows – #56407
  • Do not allow tests to fail for select PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.1 test runs – #55656, #55652
  • Add @coversNothing tagtag A 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 PHP polyfill tests in phpunit/tests/compat/#39265, #55652
  • Consistently create a post fixture in old date or slug redirect tests – #55652
  • Consistently set the current user in the tests for retaining a sticky status – #55652
  • Correct some @covers tags in wp_html_split() and wptexturize() tests – #39265, #55652
  • Correct the @covers tag in a WP_REST_Posts_Controller test for unique post slugs – #52422, #55652
  • Correct the @covers tag in a WP_REST_URL_Details_Controller test for registered route – #55652
  • Correct the @covers tag in a WP_REST_URL_Details_Controller test for registered route – #55652
  • Correct the @covers tag in a test for strip_ws() utility function – #55652
  • Correct the @covers tag syntax in a taxonomy_exists() test with non-string taxonomyTaxonomy 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.#56338, #55652
  • Correct the @covers tags in WP::send_headers() tests for feeds – #55652
  • Correct the cache invalidation tests for old date or slug redirect – #55652
  • Correct the tests for Site Health SQL versions matching readme.html#55791
  • Correctly back up and restore theme directories in Tests_Theme#55652
  • Explicitly mark empty REST APIREST 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/. tests as not performing any assertions – #40538, #41463, #55652
  • Increase coverage for translations applied to theme.jsonJSON 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.#54336
  • Increase the time difference for the expires headerHeader The 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. in Site Health page cache tests – #56041
  • Move Site Health unit testunit test Code 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. class to phpunit/tests/admin/#55652
  • Prevent an Ajax test for IMAGE_EDIT_OVERWRITE from being marked as risky – #55652
  • Remove @covers tags for native PHP functions in phpunit/tests/compat/#39265, #55652
  • Restore @covers tags for PHP polyfill tests in phpunit/tests/compat/#39265, #55652
  • Set the current user to Editor in test_utf8mb3_post_saves_with_emoji()#55652
  • Simplify and correct get_term_link() and get_edit_term_link()#55652
  • Temporarily skip the test for recommended PHP version in readme.html#55652
  • Use correct post_author value in WP_Test_REST_Attachments_Controller#55652

Bundled Themes

  • Twenty Twenty: Improve word wrap in comments required message – #56397

Code Modernization

  • Explicitly declare all properties in Gettext_Translations#56033
  • Explicitly declare all properties in Services_JSON#56033

Coding Standards

  • Use a consistent markup for line break tags across Core – #56457
  • Use more consistent formatting in wp-includes/class-json.php#55647
  • Use more meaningful variable names for output in the adminadmin (and super admin)#56448, #55647
  • Use more meaningful variable names in WP_Users_List_Table#56448, #55647

Docs

  • Add a @since note for the update_network_meta_cache parameter of WP_Network_Query::__construct()#55646
  • Simplify a comment in WP_Network_Query::get_networks() and WP_Site_Query::get_sites()#55646
  • Use third-person singular verbs for various function descriptions, as per docblocks standards – #55646

Editor

  • Preload settings and templates permissions – #56467
  • Ensure that timezone.offset passed to @wordpress/date is a float – #56459

General

  • Ensure bookmark query limits are numeric

Media

  • Output WebP by default when uploading JPEGs – #55443
  • revert the multi-mime feature – #55443

Networks and Sites

  • Use metadata api in *_network_options functions – #37181

Plugins

  • Escape output in error messages

Posts, Post Types

  • Allow bypassing of term classes in get_post_class()#37114
  • Escape output within the_meta()

REST API

  • Add the missing site_icon_url to the index – #56467

Script Loader

  • Allow a priority to be passed to wp_enqueue_block_support_styles()#56467
  • Pass startOfWeek setting to wordpress/date – #56467

Site Health

  • Bump the recommended MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/. and MariaDB versions – #55791, #meta5999, #meta6322
  • Ensure persistent object cache check short-circuit filterFilter 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. also short-circuits multisitemultisite 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#56040
  • Introduce page cache check – #56041
  • Minor i18ni18n Internationalization, 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. cleanup in page cache and persistent object cache tests – #56041
  • Refine persistent object cache check tests – #56040
  • Some documentation and test improvements for WP_Site_Health#56041
  • Update persistent object cache check documentation URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org#56040
  • Use $wpdb->db_server_info() to retrieve database server type – #56484

Props

Thanks to the 47 people who contributed to WordPress Core on Trac last week: @jrf (9), @costdev (8), @mukesh27 (6), @flixos90 (4), @swissspidy (4), @Clorith (3), @paulkevan (3), @bernhard-reiter (3), @desrosj (3), @SergeyBiryukov (3), @peterwilsoncc (3), @azaozz (2), @audrasjb (2), @johnbillion (2), @antonvlasenko (2), @tykoted (2), @xknown (2), @furi3r (2), @davidbaumwald (2), @dd32 (2), @Mamaduka (2), @TimothyBlynJacobs (2), @spacedmonkey (2), @burhandodhy (1), @ramonopoly (1), @timothyblynjacobs (1), @martinkrcho (1), @sc0ttkclark (1), @westonruter (1), @johnjamesjacoby (1), @nidhidhandhukiya (1), @sabernhardt (1), @jeremyfelt (1), @Presskopp (1), @haritpanchal (1), @pento (1), @hilayt24 (1), @xparham (1), @tlovett1 (1), @system909 (1), @steveo2000 (1), @sebastianpisula (1), @invelity (1), @andrewserong (1), @bordoni (1), @boonebgorges (1), and @talldanwp (1).

Congrats and welcome to our 3 new contributors of the week: @system909, @steveo2000, @invelity ♥️

Core committers: @sergeybiryukov (40), @flixos90 (4), @audrasjb (3), @adamsilverstein (2), @noisysocks (2), @desrosj (2), @spacedmonkey (1), @peterwilsoncc (1), and @gziolo (1).

#6-1, #core, #week-in-core

A Week in Core – August 29, 2022

Welcome back to a new issue of Week in CoreCore 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 TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between August 22 and August 29, 2022.

  • 33 commits
  • 99 contributors
  • 46 tickets created
  • 10 tickets reopened
  • 45 tickets closed

The Core team is currently working on the next major releasemajor 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., WP 6.1 🛠

The team has also started working on Twenty Twenty-Three, the next bundled theme that will be included with WP 6.1 🎨

Ticketticket 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

Build/Test Tools

  • Automatically rerun a workflow the first time it fails – #56407
  • Enable running the tests on PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.2 – #56009

Cache APIAPI 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.

  • Remove private delegation from cache priming functions – #56386

Code Modernization

  • Explicitly declare WP-specific property in WP_SimplePie_File#56033
  • Explicitly declare all properties created in set_up() methods of various test classes – #56033
  • Explicitly declare all properties in POMO_Reader et al – #56033
  • Explicitly declare all properties in WP_Ajax_Upgrader_Skin#56033
  • Explicitly declare all properties in WP_Test_Stream#56033
  • Explicitly declare all properties in various tests – #56033
  • Remove dynamic properties in Tests_Comment_Walker#56033
  • Remove dynamic properties in WP_Test_REST_Posts_Controller#56033
  • Remove dynamic properties in WP_Test_REST_Users_Controller#56033
  • Remove dynamic properties in WP_UnitTestCase_Base#56033
  • Remove unused dynamic property in WP_Test_REST_Pages_Controller#56033

Coding Standards

  • Use strict comparisons in path_is_absolute()#36308

Docs

  • Correct typo in wp_maybe_clean_new_site_cache_on_update() parameter description – #55646

Editor

  • BlockBlock 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. Patterns: Add new Footers categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging.#56416
  • Backportbackport A 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. bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes from GutenbergGutenberg 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/ into Core for WP 6.0.2 RCrelease candidate One 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).#56414
  • Ensure get_block_templates() returns unique templates or template parts – #56271
  • Ensure that timezone.offset passed to @wordpress/date is a float – #56459

Help/About

  • Improve vertical alignment in the Additional Design Tools section – #56210

Media

  • Account for Windows when normalizing file paths – #36308

Query

  • Cache post ID database query within WP_Query#22176, #55652

Site Health

  • Don’t show issue groups unless there are items in them – #47222
  • Improve the fatal error handling text in multisitemultisite 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 scenarios – #48929
  • Introduce persistent object cache check – #56040

Themes

  • Add support for Update URI headerHeader The 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.#14179, #23318, #32101

Props

Thanks to the 99 (!) people who contributed to WordPress Core on Trac last week: @jrf (14), @costdev (8), @SergeyBiryukov (7), @antonvlasenko (5), @desrosj (4), @johnbillion (4), @audrasjb (3), @peterwilsoncc (2), @markjaquith (2), @ironprogrammer (2), @mukesh27 (2), @DavidAnderson (2), @jorbin (2), @dd32 (2), @hellofromTonya (2), @Clorith (2), @spacedmonkey (2), @tillkruss (2), @chriscct7 (2), @knutsp (1), @mordauk (1), @talldanwp (1), @nvartolomei (1), @aspexi (1), @benoitchantre (1), @GaryJ (1), @Ipstenu (1), @TJNowell (1), @gMagicScott (1), @Otto42 (1), @mikejolley (1), @lev0 (1), @juliobox (1), @Rarst (1), @jb510 (1), @GeekStreetWP (1), @khromov (1), @ryno267 (1), @rudlinkon (1), @gregorlove (1), @marybaum (1), @JavierCasares (1), @ayeshrajans (1), @skithund (1), @zieladam (1), @tomepajk (1), @Mte90 (1), @oglekler (1), @webcommsat (1), @dougwollison (1), @weboccults (1), @sabernhardt (1), @joostdevalk (1), @swissspidy (1), @jonmackintosh (1), @uofaberdeendarren (1), @leemon (1), @georgestephanis (1), @williampatton (1), @damonganto (1), @ocean90 (1), @birgire (1), @stevenlinx (1), @Whissi (1), @kebbet (1), @sergeybiryukov (1), @scribu (1), @ryan (1), @nacin (1), @meloniq (1), @drewapicture (1), @batmoo (1), @aaroncampbell (1), @poena (1), @robinwpdeveloper (1), @palmiak (1), @rkaiser0324 (1), @davidbaumwald (1), @DrewAPicture (1), @jdgrimes (1), @furi3r (1), @crazycoders (1), @rmccue (1), @miqrogroove (1), @afragen (1), @apedog (1), @markparnell (1), @grapplerulrich (1), @earnjam (1), @mweichert (1), @joyously (1), @dingdang (1), @infolu (1), @JeroenReumkens (1), @nhuja (1), @sean212 (1), @filosofo (1), @design_dolphin (1), and @Synchro (1).

Congrats and welcome to our 4 new contributors of the week: @tillkruss, @tomepajk, @Whissi, @rkaiser0324 ♥️

Core committers: @sergeybiryukov (20), @desrosj (3), @clorith (2), @antpb (2), @peterwilsoncc (2), @noisysocks (1), @flixos90 (1), @mcsf (1), and @gziolo (1).

#6-1, #core, #week-in-core

Summary, Dev Chat, August 24, 2022

These are the notes from the weekly WordPress developers chat held on Wednesday August 24, 2022.

1. Welcome and introduction

2. Announcements

WordPress 6.0.2 RC 1 has landed! Please download and test.

3. Blogblog (versus network, site) posts

This is not all the posts published on the core blog during the last week, but major items highlighted for comment or queries.

A week in core (published August 25, 2022) – thank you @audrasjb

Feedback by September 9, 2022 is requested on a new system for updating HTML attributes.

The 16th Full Site Editing Call for Testing is still open. This features a simpler testing exercise. Deadline is September 2, 2022. Thanks @annezazu for the update.

4. Upcoming releases

a) The next major is 6.1.

@marybaum shared that @priethor has asked for green-yellow-red lights looking ahead to betaBeta A 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. release and almost all green were reported in the #6-1-release-leads channel.
No other updates were received on the agenda or during the meeting from the squad.

b) The next minor is 6.0.2.
The Release Candidate (RC1) is out.

Update via @sergeybiryukov

5. Components and tickets

This section is for updates from component maintainer or anyone shepherding a ticketticket Created for both bug reports and feature development on the bug tracker.. Beta 1 is five weeks away, so the time is ripe!

Updates from @sergeybiryukov for Build/Test Tools, Database, General, Themes, Date/ Time components

Build/Test Tools

As of yesterday, PHPUnit test runs on GitHubGitHub 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 include PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.2, though addressing compatibility issues is still a work in progress. PHP 8.2 is expected to be released at the end of November 2022. Thanks @jrf.

More details at: Ticket #56009 Prepare for PHP 8.2

Compatibility with the recent versions of MariaDB (10.6+) and MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/. (8.0+) was improved. With these and some other changes, specifically skipping tests for non-implemented REST API methods, most of the test runs from various hosting environments on the Host Test Results page successfully pass now, except for PHP 8.2.0alpha2 for now.

More details at: Tickets #51740 and #53623

Database

General: Code modernization efforts have continued on preparing WordPress core for PHP 8.2.

Thanks @jrf and @antonvlasenko.

More details at: Ticket #56033 PHP 8.2 explicitly declare all known properties

Themes

  • A BlockBlock 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 filterFilter 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. is now available on the Add Themes screen, to match a similar filter in the WordPress.org Theme Directory. Thanks @luminuu and @audrasjb.
    Ticket #56283 Add “Block theme” filter under “Add themes” for more details.
  • The support for Update URI theme headerHeader The 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. was added to core. This allows third-party themes to avoid accidentally being overwritten with an update of a theme of a similar name from the WordPress.org Theme Directory. Thanks @dd32@meloniq, @costdev
  • Changeset [53933] and ticket #14179 for more details.

Thanks everyone who contributed to those tickets! 

Date/Time, I18Ni18n Internationalization, 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. components

Permalinks: No major news this week.

Site Health component

@clorith:

  • Tickets #54508 (add more information to site health message) & #54617 (add more details when site health checks fail) could benefit from copy review; @webcommsat and @marybaum will follow up.

Updates on Help/About and Bulk/ Quick Edit components

@marybaum: We moved one ticket on: #56210.

Thanks @webcommsat @ogleckler @nalininonstopnews and @sergeybiryukov for comments / discussion on components in these two components. Thanks for the commit @audrasjb.

@nalininonstopnewsuk:

Quick Edit/ Bulk edit – on the next few Mondays we will continue to look at some of the tickets and doing some triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors.. We did some exploration on one particular ticket this last week. We will bring it to a bigger scrub potentially after that depending on progress.

As Mary had lost her internet connection, @nalininonstopnewsuk added: Thank you everyone for sharing. Dev chat is a good place for component maintainers to be able to share progress on their tickets and highlight any issues. You can let the core team reps know if you need some assistance too. 

As a newer maintainer, I appreciate the outreach from the team reps and from documentation at releases time. Dev chat also helps get more people to look at a specific point in an issue if needed. Just putting in my thoughts. @marybaum: Very valuable! Thanks so much.

Upgrade/ Install component

@costdev: Upgrade/Install: While we’ve had reviews from individual committers who happen to be on the Security, Docs and Polyglots teams, we’d like to make an official request to these teams here in dev chat and in their respective channels to review the Rollback Update Failure feature plugin for any potential issues.

No further update from maintainers nor tickets. Thanks everyone who has added tickets above.

6. Open Floor

@marybaum: We are going to talk about dev chat at WordCampWordCamp WordCamps 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. US Contributor DayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/..

There were no other items added to the agenda today apart from the links we have already shared. Nothing else was raised.

@marybaum: Also huge thanks, Nalini, for stepping in and helping lead this chat today! Thanks and for the info you have sent across on some words for the glossary relating to the handbook Nalini. @nalininonstopnewsuk: Thank you for the handbook link about what dev chat does and its purpose. It is very interesting and useful.

Props to: @webcommsat for the dev chat summary, and @marybaum, @nalininonstopnewsuk, and @costdev for review.

#6-0, #6-1, #dev-chat, #summary

Performance team meeting summary 30 August 2022

Meeting agenda here and the full chat log is available beginning here on Slack.

Announcements

  • @flixos90: multiple announcements
    • Team Rep nominations reminder
    • If you are contributing to the WordPress/performance GitHubGitHub 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/ repository (or any WordPress GitHub repository FWIW), please link your WordPress.orgWordPress.org The 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/ and GitHub accounts if you haven’t done so. You can do so at https://profiles.wordpress.org/profile/profile/edit/group/1/
    • If you have been contributing to the team’s efforts (e.g. GitHub, discussions, conversations in this chat, …) but don’t have the “Performance Contributor” badge on your profile, you may request to have it added by requesting to join the group at https://profiles.wordpress.org/associations/performance-contributor/
    • If you are contributing to the WordPress/performance GitHub repository, please be aware of a new rule to avoid naming your regular temporary coding branches something like feature/. That feature/ prefix will be reserved for special protected feature branches going forward
      • @adamsilverstein: other than the ‘feature/’ prefix, are there any other conventions we want to follow / is that documented somewhere?
      • @flixos90: Only feature/ and release/ must not be used for regular coding branches (a pull request to document this has since been opened)

Focus group updates

Images

@adamsilverstein @mikeschroder

GitHub project

  • @adamsilverstein: we have been working on responding to feedback on the WebP ticketticket Created for both bug reports and feature development on the bug tracker. (#55443) and conducting research around the potential usefulness of a “threshold” size above which jpegs would be generated instead of WebPs.  The research used WP-CLIWP-CLI WP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/ https://make.wordpress.org/cli/ to run many images through WordPress image compression with WebP quality set at 82, 84 & 86 to investigate how often WebP images are larger than the JPEG equivalent, at what image dimensions, and by how much. I will be summarizing the research in my response on the ticket shortly
    • there seems to be strong agreement that we should only output a single mime type. The main question now is if the mult-mime support is worth keeping – the code adds a good bit of complexity to media, and isn’t strictly required for the approach we are considering now… so we are trying to weigh the pros and cons of keeping it. It might make sense to revert and re-introduce when we have support for async media generation (something we are already working on)
  • @joegrainger: Working on creating sub-issues with implementation details for Regenerate existing images and coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. patchpatch A 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. for Update core functions to support multiple mime types
  • @mukesh27: Working on WebP core follow-up patch https://github.com/WordPress/wordpress-develop/pull/3036 and Core TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. ticket with performance focus
  • @wpgurudev: Basic regenerate-existing-images module PR has been merged, follow-up PR for background job taxonomyTaxonomy 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. up for final review; background job class PR is ready, waiting for taxonomy PR to get merged, so that tests can be added
  • @pbearne: Dominant color is getting pushback; would like to suggest that we put it behind a theme feature flag (show-dominant-color) and we add it to the media library in wp-adminadmin (and super admin)
    • @flixos90: We should evaluate that pushback closely. Can you elaborate why it should be controlled by the theme instead?
    • @pbearne: The push back seems to have the theme of “we like this but themes should control the look and feel”
    • @flixos90: So it would mean the data is still added to every image upload, but the theme decides how to use that color information? Sounds reasonable
    • @flixos90: discussing this further will be made a dedicated agenda item next week

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

  • @tillkruess: focus had one core merge last week (see PR / changeset), with great results already (see chart from wordpress.org below, shared by @dd32)
MySQL throughput dropping from roughly 1.5M to pretty much half following the commit

Feedback requested

Site Health

N/A

GitHub project

  • We’re seeking 1-2 POCs for this group; if you’re interested, please comment here or pingPing The 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 SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/.
  • @furi3r: persistent object cache Site Health PR was merged (see changeset / ticket), what is left for the full page cache PR (see ticket)?
    • @flixos90: haven’t re-reviewed it yet since last week, but if all the feedback from then has been addressed and the merge conflicts are fixed, this should be good to go
  • @furi3r: can try to get a Draft for the dev notesdev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase. by next week, I’ll be on holiday after that, so maybe someone can take over if not ready/published

Feedback requested

Measurement

N/A

GitHub project

  • We’re seeking 1-2 POCs for this group; if you’re interested, please comment here or ping in Slack
  • @mehulkaklotar: working on proposal for PluginPlugin 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 Check plugin

Feedback requested

JavaScriptJavaScript JavaScript 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/.

@aristath @sergiomdgomes

GitHub project

  • @pushpakpop: we have started research around the approach for the JavaScript orchestration project

Feedback requested

Infrastructure

@flixos90

GitHub project

  • @mukesh27: PR to fix unexpected input Warning message during release build/test process ready for re-review

Feedback requested

Open Floor

  • @olliejones: Database Performance Health Checks module proposal (continued from last week)
    • @olliejones: Is DBMS server performance part of the mission of this group?
      • @flixos90: Absolutely! Every aspect of performance is relevant to the team’s mission
    • @olliejones revised this health-check module proposal to simplify the output (see https://github.com/WordPress/performance/issues/475 and please look at the “Other” section), agrees with last week’s conversation about excess complexity; we’ll do all the checks and only report the trouble spots
      • @flixos90: In that case I’d argue there is still a lot of complexity. Implementing each of these tests in a reliable way is probably not trivial. To clarify, I’m not saying we shouldn’t do it. I’m only suggesting we start with only one of them for the first version and add the others in additional iterations
      • @olliejones: FWIW I have a prototype I’ve been testing against old versions of DBMS software as well as new versions. The tests were designed to cope with missing RDBMS features in the old versions. Yeah, complex, for sure. But doable.
    • @flixos90: Does anybody have objections against this module proposal?
      • Quick survey of thumbs up / thumbs down resulted in 9 thumbs up and 0 thumbs down
      • @olliejones will start a pull request introducing the module; if it shows that some bits there are too complex to get through in a reasonable time, we can still re-assess if we want to narrow down the scope

Our next chat will be held on Tuesday, September 6, 2022 at 15:00 UTC in the #core-performance channel in Slack.

#performance, #performance-chat, #summary

A Week in Core – August 22, 2022

Welcome back to a new issue of Week in CoreCore 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 TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between August 15 and August 22, 2022.

  • 28 commits
  • 92 contributors
  • 39 tickets created
  • 5 tickets reopened
  • 32 tickets closed

The Core team is currently working on the next major releasemajor 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., WP 6.1 🛠

The team has also started working on Twenty Twenty-Three, the next bundled theme that will be included with WP 6.1 🎨

Ticketticket 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

Build/Test Tools

  • Enable running the tests on PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.2 – #56009
  • Increase the Dependabot pull request limit for GitHubGitHub 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 – #55652
  • Only define WP_PLUGIN_DIR when running core tests – #39210
  • Assign created fixtures to the dedicated class properties in some test classes – #54662
  • Clean up test image before performing assertions in image tests – #55652
  • Consistently skip tests for non-implemented methods in REST APIREST 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/. test classes – #40538, #41463, #55652
  • Correct MariaDB version check in database charset tests – #53623

Code Modernization

  • Remove dynamic properties in theme tests – #56033

Coding Standards

  • Check for deprecated options before wp_installing()#55647
  • Remove a one-time variable in themes.view.Installer.browse#56283
  • Simplify the logic in wp_not_installed()#55647

Database

  • Account for utf8 being renamed to utf8mb3 in newer MariaDB and MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/. versions – #53623

Docs

  • Remove incorrect default value for $path argument of admin_url()#55646
  • Use third-person singular verbs for function descriptions in WP_Tax_Query class, as per docblocks standards – #55646

Editor

  • Backportbackport A 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. bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes from GutenbergGutenberg 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/ into Core for WP 6.0.2 RCrelease candidate One 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).#56414
  • Ensure get_block_templates() returns unique templates or template parts – #56271

Embeds

  • Fix missing labels and duplicate IDs – #55664

External Libraries

  • Upgrade PHPMailer to version 6.6.4 – #56016

Help/About

  • Improve vertical alignment in the Additional Design Tools section – #56210

Mail

  • Prevent the last character of names in “From” headers from being trimmed – #19847

Permalinks

  • Fix aria-live text when removing custom structure – #56230

Query

  • Cast the metaMeta Meta 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. key to BINARY for case-sensitive key comparisons in WP_Meta_Query#51740

Script Loader

  • Remove default DNSDNS DNS is an acronym for Domain Name System - how you assign a human readable address to a website’s exact numeric coded location (ie. wordpress.org uses the actual IP address 198.143.164.252). prefetch entry for s.w.org – #40426, #37387

TaxonomyTaxonomy 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.

  • Associate field descriptions with fields – #55651

Themes

  • Add a BlockBlock 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 filterFilter 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. in Theme Install Screen – #56283, #meta6330
  • Add support for Update URI headerHeader The 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.#14179, #23318, #32101
  • Include a hyphen in the Block Themes tab key on Add Themes screen – #56283

Upgrade/Install

  • Make WP_Filesystem_FTPext::size() return false on failure – #51170

Props

Thanks to the 92 (!) people who contributed to WordPress Core on Trac last week: @SergeyBiryukov (8), @costdev (4), @jrf (3), @swissspidy (2), @joyously (2), @audrasjb (2), @desrosj (2), @afercia (2), @ironprogrammer (2), @johnbillion (2), @sabernhardt (2), @Mte90 (1), @oglekler (1), @marybaum (1), @webcommsat (1), @dd32 (1), @weboccults (1), @rudlinkon (1), @hellofromTonya (1), @jonmackintosh (1), @antonvlasenko (1), @uofaberdeendarren (1), @leemon (1), @dougwollison (1), @tomepajk (1), @ayeshrajans (1), @zieladam (1), @superpoincare (1), @mattyrob (1), @kovshenin (1), @mikehansenme (1), @hakanca (1), @flixos90 (1), @aaemnnosttv (1), @garrett-eclipse (1), @jhabdas (1), @joelhardi (1), @skithund (1), @rafiahmedd (1), @luminuu (1), @johnregan3 (1), @kebbet (1), @joedolson (1), @Synchro (1), @JavierCasares (1), @lev0 (1), @gregorlove (1), @benoitchantre (1), @ryno267 (1), @infolu (1), @miqrogroove (1), @afragen (1), @apedog (1), @markparnell (1), @grapplerulrich (1), @williampatton (1), @earnjam (1), @dingdang (1), @JeroenReumkens (1), @crazycoders (1), @nhuja (1), @sean212 (1), @filosofo (1), @design_dolphin (1), @mweichert (1), @DrewAPicture (1), @markjaquith (1), @DavidAnderson (1), @rmccue (1), @jdgrimes (1), @meloniq (1), @Otto42 (1), @chriscct7 (1), @aspexi (1), @nvartolomei (1), @mordauk (1), @knutsp (1), @GaryJ (1), @TJNowell (1), @gMagicScott (1), @mikejolley (1), @damonganto (1), @Ipstenu (1), @juliobox (1), @Rarst (1), @jb510 (1), @GeekStreetWP (1), @khromov (1), @georgestephanis (1), @jorbin (1), @joostdevalk (1), and @drewapicture (1).

Congrats and welcome to our 5 new contributors of the week: @jonmackintosh, @uofaberdeendarren, @tomepajk, @hakanca, @jhabdas ♥️

Core committers: @sergeybiryukov (18), @joedolson (3), @desrosj (3), @audrasjb (3), and @gziolo (1).

#6-1, #core, #week-in-core

Performance team meeting summary 23 August 2022

Meeting agenda here and the full chat log is available beginning here on Slack.

Announcements

Focus group updates

Images

@adamsilverstein @mikeschroder

GitHub project

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

  • N/A

Feedback requested

Site Health

N/A

GitHub project

  • We’re seeking 1-2 POCs for this group; if you’re interested, please comment here or pingPing The 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 SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/.
  • @furi3r: Both the core PR for persistent object cache check and PR for full page cache check are ready; @flixos90 will review both of these this week again and commit them if they’re good to go

Feedback requested

Measurement

N/A

GitHub project

  • We’re seeking 1-2 POCs for this group; if you’re interested, please comment here or ping in Slack
  • N/A

Feedback requested

JavaScriptJavaScript JavaScript 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/.

@aristath @sergiomdgomes

GitHub project

  • N/A

Feedback requested

Infrastructure

@flixos90

GitHub project

  • N/A

Feedback requested

Open Floor

  • @adamsilverstein: fetchpriority module proposal
    • @adamsilverstein: basically the idea here is to give the browser a hint about which image it should prioritize loading
    • @adamsilverstein: we already have logic in place in core to exclude the loading=lazy attribute from images we expect will be the LCP image; so we should be able to apply the fetchpriority=high to those exact image and see improved/prioritized loading for those images; so we shouldn’t need new logic to determine which image to apply the attribute to
      • @eugenemanuilov: so, we are going to use the wp_get_loading_attr_default function to determine whether we want to use the fetchpriority  attribute or not, right? if so, i think this won’t work because it will return false (which is when we want to add the fetchpriority attribute) only once in the default setup, and most likely that once time will be used when we render a thumbnail
      • @flixos90: Potentially, definitely something along those lines. Or we could check if the image has loading="lazy" on it and only add fetchpriority="high" if not
      • @adamsilverstein: was thinking the latter, running on the same hook where loading=lazy is added, but later
    • @flixos90: this seems to be a technically rather straightforward potential module for the Performance Lab pluginPlugin 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. As Adam mentioned, the main purpose of the module would be to allow us to test how this behaves and measure the impact in the real world; from there it could be refined as needed and eventually proposed for WordPress core
    • @adamsilverstein: this is a “good first module” if someone wants to try to pick it up!
    • @olliejones: do you propose to include anything to measure the improvements? Or will measurement be based on lighthouse, etc?
      • @flixos90: I think measurement is generally happening outside of the Performance Lab plugin, e.g. using Lighthouse, WebPageTest (for lab tests) or CrUX, HTTPHTTP 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. Archive (for field tests)
      • @adamsilverstein: the generator tagtag A 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.) should indicate the active modules, so part of putting it in a module is helping being able to detect it; that said we could also query for the presence of the fetchpriority attribute itself as well
    • @masteradhoc: nice module. Interested to see how this could turn out on real sites and how much it will help. Read this guide some time ago: https://web.dev/priority-hints/; anything planned or could also be useful with the opposite priority?
      • @flixos90: Hmm I’m unfamiliar for which cases you would realistically want to use fetchpriority="low"; at least for images, we already have lazy-loading, so there adding this probably wouldn’t do much, but of course there are other types of resources where the attribute can be added, so maybe there’s some value there
    • @adamsilverstein: worth noting we recently added “preload” capabilities to core (#42438), but fetchpriority serves a slightly different use case that should have better results for LCP images
  • @olliejones: Database Performance Health Checks module proposal
    • @olliejones: This is 100% back end stuff. The DBMS world (MariaDB / MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/.) has lots of new performance-enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. stuff. I propose pointing out that stuff to site owners. Five tests in this module:
      • DBMS server version, with a detail check for the availability of the latest table format.
      • DBMS Connect / Query response time test.
      • Two tests for latest’n’greatest table formats: one for core tables (incl WooCommerce) and another for plugin tables.
      • Finally, a comparison of the data size of the site’s tables with the size of the DBMS server buffer pool, to detect underprovisioned DBMS machines.
    • @olliejones: A previous proposal also included instructions for using wp-cliWP-CLI WP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/ https://make.wordpress.org/cli/ to correct some inefficiencies, but that doesn’t work for Performance Lab: it’s aimed at site owners not server ops people.
    • @flixos90: I think there is a lot to unpack here. I wonder if it might be best to start the module with only 1 or 2 of these checks; we could easily make those different checks even different modules, not sure what the benefit would be to having it all in one module except that it’s all related to DBs
      • @olliejones: Benefit for one module? simpler Settings page, that’s it (also shared code among the tests, but that’s not so important)
      • @flixos90: fair point. But maybe we can still start with a subset of the checks. A bit easier to reason about and focus better. Discussing all these topics at once will be challenging. Maybe you can suggest a first check from the list above to focus on discussing?
      • @olliejones: Either Connect/query latency or buffer pool sizing.
    • following up on this new module proposal will be the first special agenda item next week

Our next chat will be held on Tuesday, August 30, 2022 at 15:00 UTC in the #core-performance channel in Slack.

#performance, #performance-chat, #summary

A Week in Core – August 15, 2022

Welcome back to a new issue of Week in CoreCore 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 TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between August 8 and August 15, 2022.

  • 35 commits
  • 61 contributors
  • 35 tickets created
  • 3 tickets reopened
  • 31 tickets closed

The Core team is currently working on the next major releasemajor 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., WP 6.1 🛠

The team has also started working on Twenty Twenty-Three, the next bundled theme that will be included with WP 6.1 🎨

Ticketticket 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

Administration

  • Improve performance of List Tables – #34564

Application Passwords

  • Allow a Super Adminadmin (and super admin) to set an application password on a site they’re not a member of – #53224

Build/Test Tools

  • Add @covers tags to the comments tests – #39265
  • Add @covers tags to the import tests – #39265
  • Add @covers tags to the l10nL10n Localization, 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. and i18ni18n Internationalization, 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. tests – #39265
  • Add @covers tags to the options tests – #39265
  • Move the Memcached container into the Docker Compose config – #55700
  • Bring some consistency to serialization tests – #55652
  • Use named data provider for is_serialized_string() tests – #55652
  • Update @covers tags for the load tests – #39265

Bundled Themes

  • Remove closing PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher tagtag A 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.) at the end of files – #40039
  • Twenty Eleven: Correct inline translator comment – #40039

Coding Standards

  • Rename the $file parameter to $path in some WP_Filesystem_* methods – #55647
  • Restore correct regex formatting in dbDelta()#55647

Database

  • Ignore display width for integer data types in dbDelta() on MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/. 8.0.17 or later – #49364, #51740

Docs

  • Clarify that register_taxonomy() only accepts lowercase values for the $taxonomy parameter – #56352, #55646
  • Consistently document the $excluded_terms variable in get_adjacent_post()#56348
  • Correct and improve the documented types for various functions and hooksHooks 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.#55646
  • Miscellaneous inline documentation improvements – #55646
  • Remove code tags from WordPress function names within inline documentation – #55646
  • Revert two changes that need to instead be made upstream in the GutenbergGutenberg 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/ repo – #55646
  • Use third-person singular verbs for function descriptions in wp-includes/functions.php, as per docblocks standards – #55646
  • Various docblockdocblock (phpdoc, xref, inline docs) fixes in Core TaxonomyTaxonomy 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. APIAPI 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., as per docs standards – #55646

Editor

  • Document the arguments for registering a blockBlock 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. style – #55646

Formatting

  • Add support for Enums in is_serialized()#53299

General

  • Add required fields helper functions for better reusability – #54394

I18N

  • Introduce WP_Textdomain_Registry to store text domains and their language directory paths – #26511, #39210

Login and Registration

  • Introduce is_login_screen() function – #19898

Media

  • Cache parent posts in query-attachments AJAX endpoint – #56037

Posts, Post Types

  • Prevent categories from being overwritten when updating a post using wp_insert_post()#19954

Query

  • Be better at forcing data types for query vars – #17737

Taxonomy

  • Add a test file that was missed in [53893]#56215
  • Introduce the is_term_publicly_viewable() function – #56215
  • Prevent non string taxonomy names generating warnings or errors – #56338, #56336

XML-RPC

  • Correct the documented arguments for XML-RPC server methods – #55646

Props

Thanks to the 61 people who contributed to WordPress Core on Trac last week: @costdev (11), @SergeyBiryukov (9), @pbearne (6), @ironprogrammer (5), @patopaiar (5), @hellofromTonya (5), @jrf (5), @antonvlasenko (5), @peterwilsoncc (4), @audrasjb (4), @mukesh27 (3), @johnbillion (3), @desrosj (3), @sabernhardt (3), @dd32 (3), @nacin (2), @leewillis77 (2), @yahil (1), @ocean90 (1), @milindmore22 (1), @vishalkakadiya (1), @NomNom99 (1), @manishsongirkar36 (1), @yoavf (1), @swissspidy (1), @juliobox (1), @bengreeley (1), @dipakparmar443 (1), @grapplerulrich (1), @bobbingwide (1), @johnjamesjacoby (1), @chaion07 (1), @mikeschroder (1), @mxbclang (1), @spacedmonkey (1), @JavierCasares (1), @netweb (1), @markoheijnen (1), @georgestephanis (1), @dcowgill (1), @dave1010 (1), @tellyworth (1), @johnregan3 (1), @ryokuhi (1), @joedolson (1), @ayeshrajans (1), @konradyoast (1), @dennisatyoast (1), @albatross10 (1), @scribu (1), @ilovecats7 (1), @donmhico (1), @iandunn (1), @wonderboymusic (1), @robmiller (1), @chriscct7 (1), @tazotodua (1), @davidbaumwald (1), @xknown (1), @TimothyBlynJacobs (1), and @kitchin (1).

Congrats and welcome to our 3 new contributors of the week: @dipakparmar443, @dave1010, @albatross10 ♥️

Core committers: @johnbillion (12), @sergeybiryukov (6), @audrasjb (6), @azaozz (5), @peterwilsoncc (2), @desrosj (2), @swissspidy (1), and @ocean90 (1).

#6-1, #core, #week-in-core

A Week in Core – August 8, 2022

Welcome back to a new issue of Week in CoreCore 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 TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between August 1st and August 8, 2022.

  • 54 commits
  • 78 contributors
  • 39 tickets created
  • 4 tickets reopened
  • 38 tickets closed

The Core team is currently working on the next major releasemajor 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., WP 6.1 🛠

Ticketticket 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

Administration

  • Change default site tagline to an empty string – #6479

Bundled Themes

  • Twenty Eleven: Remove a useless CSSCSS Cascading Style Sheets. comment after [53819]#56297
  • Twenty Eleven: Use more specific CSS selectors for .required styles – #56297

Cache APIAPI 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.

  • Validate cache key in WP_Object_Cache methods – #56198

Code Modernization

  • Let MockClass extend stdClass#56033
  • Remove dynamic properties in Tests_File#56033
  • Remove dynamic properties in Tests_Media_GetPostGalleries#56033
  • Remove dynamic properties in Tests_POMO_PO#56033
  • Remove dynamic properties in Tests_Post_Revisions#56033
  • Remove unused $undefined property in Tests_WP_Customize_Manager#56033
  • Remove unused dynamic property in Tests_WP_Customize_*#56033

Coding Standards

  • Remove extra space in two conditionals – #56134
  • Reorder global cache groups alphabetically for some consistency – #55647
  • Wrap long lines with global cache groups for better readability – #55647
  • Properly escape URLs returned by self_admin_url() calls – #56329
  • Properly escape URLs returned by self_admin_url() calls – #56329

Database

  • Suppress errors when checking the validity of table prefix during installation – #42362

Date/Time

Docs

  • Improve @since notes for some WP_Filesystem_* methods – #51170
  • Improve description for doing_filter() and doing_action()#55646
  • Improve the description of param $list in wp_list_sort() docblockdocblock (phpdoc, xref, inline docs)#56324, #55646
  • Provide a more accurate @return type for get_pages() function – #56330, #55646
  • Remove obsolete comment in object cache tests – #55646, #55652
  • Use third-person singular verbs for function descriptions in WP_REST_Posts_Controller, as per docblocks standards – #55646
  • Various corrections and improvements to inline documentation – #55646
  • Various docblock fixes in wp-admin/includes/image.php class, as per docs standards – #55646
  • Various docblock fixes in wp-includes/blocks.php, as per docs standards – #55646

Editor

  • Safeguard has_blocks() against fatal errors – #55705

Filesystem

  • Rewrite FTPFTP FTP is an acronym for File Transfer Protocol which is a way of moving computer files from one computer to another via the Internet. You can use software, known as a FTP client, to upload files to a server for a WordPress website. https://codex.wordpress.org/FTP_Clients./FTP Sockets exists() methods to implement a more stable check – #51170, #53318, #39781

Media

  • Correct a misnamed variable when creating sub sizes with multi_resize#55443

Media

  • Remove unused _wp_image_belongs_to_attachment function – #56333
  • Use original image size data for full size secondary mime generation – #55443

Plugins

  • Properly encode query string s parameter in pluginPlugin 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 search – #56339

Posts, Post Types

  • Change variable name in wp_set_post_terms() for clarity – #56331
  • Force unique slugs for draft posts – #52422

RevisionsRevisions 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.

  • Use latest_id as the array key for the latest revision ID – #55857

Revisions

  • Use wp_get_latest_revision_id_and_total_count() where appropriate – #56279

Rewrite rules

  • Prevent malformed date requests throwing notices – #52252

Script loader

  • Enable resource preloading with rel=’preload’ – #42438

Site Health

  • Improve the wording in plugin and theme version tests – #56134

Sitemaps

  • Prevent invalidinvalid 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. provider names throwing errors – #56336

Tests

  • Add a test case with a float value for WP_Object_Cache::is_valid_key()#56198
  • Add a unit testunit test Code 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. for WP_Object_Cache::is_valid_key()#56198
  • Add more test cases for WP_Object_Cache::is_valid_key()#56198
  • Combine test classes for get_edit_term_link() tests – #55652
  • Correct data providers for get_term_link() and get_edit_term_link() tests – #55652
  • Improve the test for not throwing a warning on malformed date queries – #52252, #45513
  • Make the comment cache group persistent in WP_UnitTestCase_Base::flush_cache()#55652
  • Move wp_cache_replace() test to a more appropriate place – #55652
  • Remove the list of global groups in Memcached implementation used in the test suite – #55652
  • Remove the list of non-persistent groups in Memcached implementation used in the test suite – #55652
  • Rename the test class for wp_preload_resources() tests – #42438
  • Simplify the list of global groups in object cache tests – #55647
  • Use named data provider for WP_Object_Cache::is_valid_key() test – #56198

Props

Thanks to the 78 people who contributed to WordPress Core on Trac last week: @costdev (12), @peterwilsoncc (10), @SergeyBiryukov (9), @jrf (7), @audrasjb (7), @mukesh27 (5), @dd32 (4), @tillkruess (3), @spacedmonkey (3), @malthert (3), @desrosj (3), @krishaweb (2), @sabernhardt (2), @johnbillion (2), @azaozz (2), @hellofromTonya (2), @rafiahmedd (1), @martinkrcho (1), @Toro_Unit (1), @boemedia (1), @khag7 (1), @melchoyce (1), @lukecavanagh (1), @karmatosed (1), @hyperbrand (1), @tyxla (1), @h2ham (1), @lazam786 (1), @antonvlasenko (1), @burgiuk (1), @pbearne (1), @rherault (1), @deksar (1), @sumitsingh (1), @maythamalsudany (1), @mdrago (1), @psykro (1), @ironprogrammer (1), @codewhy (1), @blackawxs (1), @mikemanzo (1), @irecinius (1), @Velochicdunord (1), @kovshenin (1), @pento (1), @chriscct7 (1), @flixos90 (1), @RyanMurphy (1), @igrigorik (1), @1naveengiri (1), @giox069 (1), @mkox (1), @afragen (1), @pbiron (1), @Howdy_McGee (1), @colonelphantom (1), @dlh (1), @ovidiul (1), @tremidkhar (1), @mehulkaklotar (1), @nico23 (1), @swissspidy (1), @westonruter (1), @westi (1), @furi3r (1), @aristath (1), @mihai2u (1), @gziolo (1), @praful2111 (1), @jigar-bhanushali (1), @hilayt24 (1), @umesh84 (1), @Presskopp (1), @martin.krcho (1), @Clorith (1), @markjaquith (1), @Denis-de-Bernardy (1), and @rarst (1).

Congrats and welcome to our 19 (!) new contributors of the week: @hyperbrand, @h2ham, @lazam786, @burgiuk, @rherault, @deksar, @maythamalsudany, @mdrago, @codewhy, @blackawxs, @mikemanzo, @irecinius, @Velochicdunord, @RyanMurphy, @igrigorik, @giox069, @colonelphantom, @tremidkhar, @praful2111 ♥️

Core committers: @sergeybiryukov (31), @audrasjb (14), @adamsilverstein (4), @peterwilsoncc (3), @johnbillion (1), @desrosj (1).

#6-1, #core, #week-in-core

A Week in Core – August 1, 2022

Welcome back to a new issue of Week in CoreCore 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 TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between July 25 and August 1st, 2022.

  • 30 commits
  • 29 contributors
  • 36 tickets created
  • 6 tickets reopened
  • 36 tickets closed

The Core team is currently working on the next major releasemajor 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., WP 6.1 🛠

Ticketticket 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

Administration

  • Add labels to read-only form fields – #54302
  • Correct the escaping in documentation lookup for pluginPlugin 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 and theme editor – #56007
  • Remove unused CSSCSS Cascading Style Sheets. selectors related to old format menu icons – #35717

Application Passwords

  • Link a more accurate documentation page in User profile edit screen – #56267

Build/Test Tools

  • Add tagtag A 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.) pattern matching for the testing NPM workflow – #55652
  • Correctly detect the first workflow run for a branchbranch 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". or tag – #55652
  • Make the GitHubGitHub 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/ Action pattern matching for tags more specific – #55652
  • Add failure messages for site icon and custom logo tests – #55652
  • Correct the test for passing all expected parameters to the preprocess_comment filterFilter 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.#55647, #56244
  • Declare custom-logo theme support for custom logo tests – #55652

Bundled Themes

  • Update NPM dependencies for Twenty Twenty and Twenty Nineteen – #55652
  • Twenty Twenty-One: Add blockBlock 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. type suggestions to block patterns – #53647
  • Twenty Twenty-One: Rebuild the IE specific stylesheet – #55989
  • Twenty Twenty-One: Update NPM dependencies – #55652

Cache APIAPI 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.

  • Add wp_cache_flush_group function – #4476
  • Make the placement of wp_cache_flush_group() more consistent – #55647, #4476

Coding Standards

  • Adjust the logic slightly in wp_ajax_replyto_comment()#55647
  • Check if the _deprecated_file() function exists in wp-db.php#56268, #55647
  • Improve variable names in wp-trackback.php#55647, #56244
  • Move wp-includes/wp-db.php to wp-includes/class-wpdb.php#56268, #55647
  • Remove extra comma in a compact() call – #55647, #56244
  • Remove unused variable in wp-trackback.php#55647
  • Rename $comment_post_ID and $comment_author_IP variables in various files – #55647, #56244
  • Replace the old wp-db.php filename in phpcompat.xml.dist#56268, #55647
  • Standardize on user_id when passing data to comment functions – #55647, #56244
  • Use __DIR__ instead of ABSPATH in wp-db.php#56268, #55647
  • Use consistent placement for ::prepare_links() methods – #55647

Docs

  • Add a @since note for get_post_permalink() returning false on failure – #45329
  • Add function description and @since mention for get_upload_iframe_src()#55646
  • Add missing function description in wp-admin/includes/comment.php#55646
  • Add missing function description in wp-admin/includes/template.php#55646
  • Document that the $file_format parameter of metadata filters can be null – #55646, #55828
  • Fix indentation issues in block-template-utils.php docblocks, as per docs standards – #55646
  • Fix indentation issues in wp_read_video_metadata and wp_read_audio_metadata docblocks – #55646
  • List the expected type first in a few functions: – #55646
  • Provide a more accurate description for wp_is_theme_directory_ignored()#56257, #55646
  • Refine @return docblockdocblock (phpdoc, xref, inline docs) mentions for esc_sql(), wp_slash() and wp_unslash()#53946, #55646
  • Remove an obsolete function description in addslashes_gpc()#56233, #55646
  • Update do_action() docblock code example – #55977
  • Use third-person singular verbs for function descriptions in block-template.php and block-template-utils.php#55646
  • Use third-person singular verbs for function descriptions in general-template.php, as per docblocks standards – #55646
  • Use third-person singular verbs for function descriptions in wp-admin/includes/comment.php, as per docblocks standards – #55646

Editor

  • Fix register_block_type does not recognise ancestor block setting – #56184

Embeds

  • Add Pocket Casts as a trusted oEmbed provider – #55860

External Libraries

  • Update the Moment library to version 2.29.4 – #56031

Formatting

Media

  • Allow filtering audio file metadata in wp_read_audio_metadata()#55828
  • Prevent URLs from overflowing their container in the media editor – #55393
  • Enable generating multiple mime types for image uploads; specifically WebP versions for JPEG images by default – #55443

Plugins

  • Improve color contrast on plugins screen when recovery mode is activated – #56190

Posts, Post Types

  • Check if the post type exists in wp_insert_post()#55877
  • Correct the check for non-existing post in get_post_permalink()#45329

REST APIREST 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 prepare_links method to WP_REST_Post_Types_Controller class – #56019
  • Add prepare_links method to WP_REST_Taxonomies_Controller class – #56020
  • Avoid unnecessarily preparing item links – #52992
  • Prime post caches in comments endpoint – #56272
  • Use wp_get_lastest_revision_id_and_total_count function in WP_REST_Posts_Controller class – #55857

RevisionsRevisions 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.

  • Correct the function name for retrieving the last revision ID and total count – #55857
  • Rename the function for retrieving the latest revision ID and total count – #55857
  • Update the “last revision” wording to “latest revision” in various files – #55857

Themes

  • Add a hook to filter theme headerHeader The 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. image URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org#56180

Upgrade/Install

  • Improve plugin update icon alignment – #56123
  • track php extensions and image library support for WebP and AVIF – #48116

Props

Thanks to the 29 people who contributed to WordPress Core on Trac last week: @audrasjb (4), @SergeyBiryukov (3), @jrf (3), @costdev (2), @mukesh27 (2), @mordauk (1), @ironprogrammer (1), @grandeljay (1), @Mamaduka (1), @aaemnnosttv (1), @flixos90 (1), @mitogh (1), @eugenemanuilov (1), @thakkarhardik (1), @ryelle (1), @ndiego (1), @joedolson (1), @lopo (1), @chriscct7 (1), @juliemoynat (1), @sabernhardt (1), @whaze (1), @Soean (1), @azouamauriac (1), @markparnell (1), @dd32 (1), @nacin (1), @andykeith (1), and @milana_cap (1).

Congrats and welcome to our new contributor of the week: @aaemnnosttv ♥️

Core committers: @sergeybiryukov (18), @audrasjb (9), @peterwilsoncc (1), @flixos90 (1), @gziolo (1).

#6-1, #core, #week-in-core

A Week in Core – July 25, 2022

Welcome back to a new issue of Week in CoreCore 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 TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between July 18 and July 25, 2022.

It was quite a busy week, with 121 people contributing to 62 commits!

Worth noting that we never had so many new contributors in a week since we restarted the Week in Core blogposts 2 years ago! 😱😍

  • 62 commits
  • 121 contributors
  • 46 tickets created
  • 6 tickets reopened
  • 49 tickets closed

The Core team is currently working on the next major releasemajor 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., WP 6.1 🛠

Ticketticket 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

Administration

  • Add labels to read-only form fields – #54302
  • Correct the escaping in documentation lookup for pluginPlugin 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 and theme editor – #56007
  • Remove unused CSSCSS Cascading Style Sheets. selectors related to old format menu icons – #35717

Application Passwords

  • Link a more accurate documentation page in User profile edit screen – #56267

Build/Test Tools

  • Add tagtag A 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.) pattern matching for the testing NPM workflow – #55652
  • Correctly detect the first workflow run for a branchbranch 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". or tag – #55652
  • Make the GitHubGitHub 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/ Action pattern matching for tags more specific – #55652
  • Add failure messages for site icon and custom logo tests – #55652
  • Correct the test for passing all expected parameters to the preprocess_comment filterFilter 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.#55647, #56244
  • Declare custom-logo theme support for custom logo tests – #55652

Bundled Themes

  • Update NPM dependencies for Twenty Twenty and Twenty Nineteen – #55652
  • Twenty Twenty-One: Add blockBlock 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. type suggestions to block patterns – #53647
  • Twenty Twenty-One: Rebuild the IE specific stylesheet – #55989
  • Twenty Twenty-One: Update NPM dependencies – #55652

Cache APIAPI 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.

  • Add wp_cache_flush_group function – #4476
  • Make the placement of wp_cache_flush_group() more consistent – #55647, #4476

Coding Standards

  • Adjust the logic slightly in wp_ajax_replyto_comment()#55647
  • Check if the _deprecated_file() function exists in wp-db.php#56268, #55647
  • Improve variable names in wp-trackback.php#55647, #56244
  • Move wp-includes/wp-db.php to wp-includes/class-wpdb.php#56268, #55647
  • Remove extra comma in a compact() call – #55647, #56244
  • Remove unused variable in wp-trackback.php#55647
  • Rename $comment_post_ID and $comment_author_IP variables in various files – #55647, #56244
  • Replace the old wp-db.php filename in phpcompat.xml.dist#56268, #55647
  • Standardize on user_id when passing data to comment functions – #55647, #56244
  • Use __DIR__ instead of ABSPATH in wp-db.php#56268, #55647
  • Use consistent placement for ::prepare_links() methods – #55647

Docs

  • Add a @since note for get_post_permalink() returning false on failure – #45329
  • Add function description and @since mention for get_upload_iframe_src()#55646
  • Add missing function description in wp-admin/includes/comment.php#55646
  • Add missing function description in wp-admin/includes/template.php#55646
  • Document that the $file_format parameter of metadata filters can be null – #55646, #55828
  • Fix indentation issues in block-template-utils.php docblocks, as per docs standards – #55646
  • Fix indentation issues in wp_read_video_metadata and wp_read_audio_metadata docblocks – #55646
  • List the expected type first in a few functions: – #55646
  • Provide a more accurate description for wp_is_theme_directory_ignored()#56257, #55646
  • Refine @return docblockdocblock (phpdoc, xref, inline docs) mentions for esc_sql(), wp_slash() and wp_unslash()#53946, #55646
  • Remove an obsolete function description in addslashes_gpc()#56233, #55646
  • Update do_action() docblock code example – #55977
  • Use third-person singular verbs for function descriptions in block-template.php and block-template-utils.php#55646
  • Use third-person singular verbs for function descriptions in general-template.php, as per docblocks standards – #55646
  • Use third-person singular verbs for function descriptions in wp-admin/includes/comment.php, as per docblocks standards – #55646

Editor

  • Fix register_block_type does not recognise ancestor block setting – #56184

Embeds

  • Add Pocket Casts as a trusted oEmbed provider – #55860

External Libraries

  • Update the Moment library to version 2.29.4 – #56031

Formatting

Media

  • Allow filtering audio file metadata in wp_read_audio_metadata()#55828
  • Prevent URLs from overflowing their container in the media editor – #55393
  • enable generating multiple mime types for image uploads; specifically WebP versions for JPEG images by default – #55443

Plugins

  • Improve color contrast on plugins screen when recovery mode is activated – #56190

Posts, Post Types

  • Check if the post type exists in wp_insert_post()#55877
  • Correct the check for non-existing post in get_post_permalink()#45329

REST APIREST 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 prepare_links method to WP_REST_Post_Types_Controller class – #56019
  • Add prepare_links method to WP_REST_Taxonomies_Controller class – #56020
  • Avoid unnecessarily preparing item links – #52992
  • Prime post caches in comments endpoint – #56272
  • Use wp_get_lastest_revision_id_and_total_count function in WP_REST_Posts_Controller class – #55857

RevisionsRevisions 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.

  • Correct the function name for retrieving the last revision ID and total count – #55857
  • Rename the function for retrieving the latest revision ID and total count – #55857
  • Update the “last revision” wording to “latest revision” in various files – #55857

Themes

  • Add a hook to filter theme headerHeader The 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. image URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org#56180

Upgrade/Install

  • Improve plugin update icon alignment – #56123
  • Upgrade/Install: track php extensions and image library support for WebP and AVIF – #48116

Props

Thanks to the 121 (wow!) people who contributed to WordPress Core on Trac last week: @audrasjb (11), @SergeyBiryukov (11), @peterwilsoncc (6), @timothyblynjacobs (5), @Spacedmonkey (5), @mukesh27 (5), @sabernhardt (4), @mikeschroder (3), @dlh (3), @costdev (3), @desrosj (3), @pento (2), @mitogh (2), @pbiron (2), @dd32 (2), @joedolson (2), @poena (2), @flixos90 (2), @spacedmonkey (2), @johnbillion (2), @rafiahmedd (2), @afercia (2), @kasparsd (1), @dainemawer (1), @karinclimber (1), @cagsmith (1), @seedsca (1), @scofennellgmailcom (1), @jb510 (1), @annezazu (1), @trevorpfromsandee (1), @clorith (1), @grapplerulrich (1), @codekraft (1), @Presskopp (1), @clarkeemily (1), @mxbclang (1), @eugenemanuilov (1), @akshitsethi (1), @tweetythierry (1), @eherman24 (1), @mehulkaklotar (1), @joegrainger (1), @baxbridge (1), @chynnabenton (1), @sobatkras (1), @masteradhoc (1), @isabel_brison (1), @manzoorwanijk (1), @renegeuze (1), @hztyfoon (1), @mattwondra (1), @kebbet (1), @ryokuhi (1), @thakkarhardik (1), @dilipbheda (1), @leogermani (1), @webbeetle (1), @mmaumio (1), @feastdesignco (1), @jeffpaul (1), @markhowellsmead (1), @imarkinteractive (1), @olliejones (1), @garymatthews919 (1), @kwillmorth (1), @barneydavey (1), @tonylocalword (1), @lovor (1), @eatingrules (1), @azaozz (1), @studiolxv (1), @ryan (1), @pbearne (1), @tillkruess (1), @dg12345 (1), @lucasbustamante (1), @dougal (1), @dhilditch (1), @Ste_95 (1), @scribu (1), @sc0ttkclark (1), @filosofo (1), @hellofromTonya (1), @luigipulcini (1), @JustinSainton (1), @Chouby (1), @byohann6 (1), @malthert (1), @mitweka (1), @circlecube (1), @anantajitjg (1), @alamgircsebd (1), @kapilpaul (1), @rachelbaker (1), @furi3r (1), @MatthiasReinholz (1), @helen (1), @whaze (1), @greg24 (1), @onnimonni (1), @dxd5001 (1), @virgar (1), @nuryko (1), @laboiteare (1), @ironprogrammer (1), @zodiac1978 (1), @rodrigosevero (1), @ocean90 (1), @aristath (1), @markoheijnen (1), @gitlost (1), @p_enrique (1), @nunomorgadinho (1), @nacin (1), @targz (1), @NumidWasNotAvailable (1), @nareshbheda (1), @pratiweb (1), @justinahinon (1), and @ryelle (1).

Congrats and welcome to our 41 (!!) new contributors of the week: @dainemawer, @karinclimber, @cagsmith, @scofennellgmailcom, @trevorpfromsandee, @codekraft, @clarkeemily, @mxbclang, @eugenemanuilov, @akshitsethi, @joegrainger, @baxbridge, @chynnabenton, @sobatkras, @masteradhoc, @renegeuze, @mattwondra, @webbeetle, @feastdesignco, @imarkinteractive, @olliejones, @garymatthews919, @kwillmorth, @barneydavey, @tonylocalword, @studiolxv, @dg12345, @dhilditch, @Ste_95, @byohann6, @mitweka, @alamgircsebd, @MatthiasReinholz, @greg24, @dxd5001, @virgar, @nuryko, @laboiteare, @rodrigosevero, @targz, @nareshbheda ♥️

Core committers: @sergeybiryukov (23), @audrasjb (21), @desrosj (8), @spacedmonkey (5), @peterwilsoncc (2), @adamsilverstein (2), and @gziolo (1).

#6-0-1, #6-1, #core, #week-in-core