A Week in Core – July 17, 2023

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 10 and July 17, 2023.

  • 78 commits
  • 135 contributors
  • 61 tickets created
  • 12 tickets reopened
  • 70 tickets closed

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 a missing closing `span> 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 column sorting indicators – #32170, #57839

Bootstrap/Load

  • Require wp-includes/compat.php in src/index.php#58206

Build/Test Tools

  • Remove outmoded jsvalidate task from Gruntfil – #58645, #26615
  • Prevent 404 errors in the E2E tests – #58777
  • Reset main query object after each test – #58776
  • Suppress E2E test suite 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/. notifications – #58779
  • Add tests to ensure the contribute Toolbar node is added when appropriate
  • Use assertSame() in Tests_Comment – #57855

Bundled Theme

  • fix height of featured images in Twenty Twenty Three – #58766
  • Twenty Seventeen: Use wp_register_script() to register HTML5 Shiv script – #56699
  • Twenty Twenty-Three: Add a border to Quote 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.#57506
  • Twenty Twenty-Three: Remove the perPage attribute where the query inherits from the global query. The global attribute should be used instead – #58581
  • Twenty Twenty-Three: Revert [55898]#58485

Code Modernization

  • Use str_contains() in a few more places – #58206

Coding Standards

  • Use single quotes for a string in Tests_Comment#57855
  • Use strict comparison for static strings in wp-admin/includes/class-wp-list-table.php#32170, #57839
  • Use strict comparison in wp-includes/class-wp-network.php#57839
  • Use strict comparison in wp-includes/class-wp-rewrite.php#57839
  • Use strict comparison in wp-includes/load.php#57839
  • Use strict comparison in wp-includes/rewrite.php#57839

Docs

  • Clarify where the wp_get_development_mode() value is retrieved from – #57487, #57840
  • Fix incorrect type for $crop param is various WP_Image_Editor classes and methods – #58271, #57840
  • Fix various incorrect @since mentions – #58834, #57840
  • Replace multiple single line comments with multi-line comments – #58459
  • Replace multiple single line comments with multi-line comments – #58459
  • Replace multiple single line comments with multi-line comments – #58459
  • Replace multiple single line comments with multi-line comments – #58459
  • Replace multiple single line comments with multi-line comments – #58459
  • Replace multiple single line comments with multi-line commentsProps costdev, audrasjb – #58459
  • Use consistent wording for development mode – #57487, #57840
  • Various docblocks corrections – #57840

Editor

  • Add test for context setting in Comment Template block – #58839
  • Fix a PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher notice appearing when adding a new template part – #57851
  • Fix 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. where it was not possible to style custom block elements in theme.json#57868
  • Fix layout of no-js state in site editor – #56228
  • Fix open_basedir warnings on the classic Edit Post screen when additional TinyMCE plugins are use – #54354
  • Lazily load Duotone settings only when needed – #58673
  • fix duotone filters in classic themes – #58734#46132
  • fix since annotation in rest blocks controller class – #58677
  • opt out of Navigation fallback – #58750
  • remove one preloaded navigation endpoint – #58749
  • trim footnote anchors from post excerpts – #58805
  • update npm packages with bug fixes and blessed tasks – #58745
  • update npm packages with first round of bug fixes for 6.3 RC1 – #58804
  • update npm packages with second round of bug fixes for 6.3 RC1 – #58804
  • update string incorrectly marked for translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. in Chrome – #58716

External Libraries

  • Update deprecated jQuery code in Farbtastic lib – #57946

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

  • Ensure wp_tempnam() does not produce file names longer than 255 characters as this is the limit on most filesystems – #35755

General

  • Escape nonce used for block theme activation – #58712
  • Introduce all development mode – #57487
  • Rename wp_in_development_mode() to wp_is_development_mode()#57487
  • add nonce for block theme preview activation – #58712
  • fix botched file move in r56199#58712

Help/About

  • Add a “Get Involved” tab to the About page – #23348
  • Adjust horizontal padding on the tabs under 960 pixels width – #23348
  • Fix closing contextual help when scrolled – #55342
  • Fix typo in [56171]: support forumSupport Forum WordPress Support Forums is a place to go for help and conversations around using WordPress. Also the place to go to report issues that are caused by errors with the WordPress code and implementations. “topic”, not “ticket”
  • String changes in the Contribute screen – #23348
  • Update the About page for 6.3 – #58067
  • Update “Get Involved” tab content with the latest edits – #23348

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.

  • Improve the use of dashicons-external icon for external links – #47303
  • Move translator comments inside sprintf for tagline field description – #57675

Media

  • Fix adminadmin (and super admin) image editor layout at intermediary widths – #58692
  • Fix responsive views in image editor – #58692
  • Improve layout of image rotation options panel – #58756
  • Optimize images created in shortcodes – #58681
  • Set default state for image rotation button – #58800
  • Stop using and deprecate set_imagick_time_limit(). Seems it causes more problems than it solves – #58202

Menus

  • Fix critical errors when the page_on_front and/or page_for_posts options contain references to non-existing posts – #58345

Script Loader

  • Improve test coverage for wp_print_scripts()#58648

Toolbar

  • Make the ‘Edit site’ link open the editor with the current template – #58746

Upgrade/Install

  • Add correct parameters to add_option in upgrade_630 – #58821

Props

Thanks to the 135 (!) people who contributed to WordPress Core on Trac last week:

@costdev (24), @mukesh27 (13), @audrasjb (13), @sergeybiryukov (12), @ramonopoly (9), @poena (9), @sabernhardt (8), @spacedmonkey (8), @flixos90 (8), @swissspidy (8), @joemcgill (7), @peterwilsoncc (7), @oglekler (7), @afercia (6), @joedolson (6), @azaozz (5), @mrinal013 (4), @aristath (4), @desrosj (3), @wildworks (3), @westonruter (3), @mikinc860 (3), @davidbaumwald (3), @richtabor (3), @eidolonnight (3), @andrewserong (3), @jpantani (2), @nithi22 (2), @annezazu (2), @priethor (2), @tobifjellner (2), @marybaum (2), @dunhakdis (2), @vivekawsm (2), @robinwpdeveloper (2), @meher (2), @mikeschroder (2), @get_dave (2), @SeReedMedia (2), @antpb (2), @Presskopp (2), @ryelle (2), @nithins53 (2), @jameskoster (2), @alexstine (2), @ajlende (2), @scruffian (2), @isabel_brison (2), @jorbin (2), @mikachan (2), @nacin (1), @jeffmora (1), @bridgetwillard (1), @jenmylo (1), @boemedia (1), @davidmusnik (1), @lukecavanagh (1), @mehdi01 (1), @hugobaeta (1), @TacoVerdo (1), @joostdevalk (1), @johnbillion (1), @markoheijnen (1), @helen (1), @bacoords (1), @fierevere (1), @skorasaurus (1), @andraganescu (1), @dhrumilk (1), @zoonini (1), @akrocks (1), @nidhidhandhukiya (1), @syamraj24 (1), @jomonthomaslobo1 (1), @Toro_Unit (1), @eric.7186 (1), @thunderdw (1), @paaljoachim (1), @courane01 (1), @clubkert (1), @Shelob9 (1), @beckej (1), @abitofmind (1), @Mamaduka (1), @thekt12 (1), @antonvlasenko (1), @mohiuddinomran (1), @estelaris (1), @webcommsat (1), @cathibosco1 (1), @deepakvijayan (1), @mt_suzette (1), @Malae (1), @soulseekah (1), @matt_fw (1), @ekazda (1), @densityapps (1), @mtxz (1), @hberberoglu (1), @dsar (1), @onemaggie (1), @TobiasBg (1), @Rahmohn (1), @oandregal (1), @glendaviesnz (1), @gudmdharalds (1), @saxonafletcher (1), @joen (1), @markoserb (1), @cbringmann (1), @clarkeemily (1), @peterwilson (1), @youknowriad (1), @karmatosed (1), @MadtownLems (1), @brasofilo (1), @jeryj (1), @nazmul111 (1), @Chouby (1), @suzettefranck (1), @ugyensupport (1), @ibrahimmonir (1), @njsamsatli (1), @rembem (1), @mcsf (1), @josklever (1), @wplindavantol (1), @hbhalodia (1), @dansoschin (1), @Heiko_Mamerow (1), @piotrek (1), @mai21 (1), @studionashvegas (1), @mikecho (1), and @doems (1).

Congrats and welcome to our 23 (!!) new contributors of the week: @jeffmora, @davidmusnik, @mehdi01, @beckej, @mohiuddinomran, @mt_suzette, @matt_fw, @ekazda, @densityapps, @mtxz, @hberberoglu, @dsar, @gudmdharalds, @saxonafletcher, @nazmul111, @suzettefranck, @ibrahimmonir, @njsamsatli, @rembem, @wplindavantol, @Heiko_Mamerow, @mikecho ♥️

Core committers: @audrasjb (17), @sergeybiryukov (17), @isabel_brison (13), @joedolson (7), @azaozz (6), @joemcgill (5), @peterwilsoncc (5), @davidbaumwald (2), @spacedmonkey (2), @ryelle (1), @bernhard-reiter (1), @flixos90 (1), @kadamwhite (1), @jorbin (1), and @mikeschroder (1).

#6-3, #core, #week-in-core

A Week in Core – July 10, 2023

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 3 and July 10, 2023.

  • 80 commits
  • 100 contributors
  • 77 tickets created
  • 10 tickets reopened
  • 58 tickets closed

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

  • Adjust the “No private directive present in cache control when user not logged in” test so the assertions won’t fail if the headers don’t contain a cache-control key at all – #21938
  • Administration: CSSCSS Cascading Style Sheets. selector correction for list table checkboxes – #21516

Boostrap/Load

  • Incorrect condition in wp_check_php_mysql_versions()#58201

Build/Test Tools

  • Prevent 404 errors in the E2E tests – #58777
  • Suppress E2E test suite 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/. notifications – #58779
  • Fix dynamic property deprecation warning in object cache drop-in – #58736
  • Fix incorrect hook being used to separate Server-Timing metrics in performance tests – #58674

Bundled Themes

  • Twenty Fifteen: Reintroduce HTML5 Shiv – #56699
  • Twenty Seventeen: Reintroduce HTML5 Shiv – #56699
  • Twenty Seventeen: Use wp_register_script() to register HTML5 Shiv script – #56699
  • Twenty Thirteen: Reintroduce HTML5 Shiv – #56699
  • Twenty Twenty-One: Add b and strong elements to editor styles – #58383
  • Twenty Twenty-One: Replace the experimental link color theme support – #58702
  • Twenty Twenty-Three: Add a border to Quote 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.#57506
  • Twenty Twenty-Three: Allow changing Site Title font size in Marigold and Whisper styles – #57971
  • Twenty Twenty-Three: Fix Separator Block default styling – #57667
  • Twenty Twenty: Fix left margin in Latest Posts & Latest Comments blocks – #58396

Coding Standards

  • Add missing newline at the end of wp-admin/user.php#58194
  • Use strict comparison in wp-includes/class-wp-simplepie-file.php#57839
  • Use strict comparison in wp-includes/class-wp-tax-query.php#57839
  • Use strict comparison in wp-includes/class-wp-user-query.php#57839
  • Use strict comparison in wp-includes/class-wp-user.php#57839

Docs

  • Correct the formatting of various 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. documentation – #57840
  • Docblockdocblock (phpdoc, xref, inline docs) correction in WP_REST_Attachments_Controller::upload_from_data()#57840
  • Document the return value of wp_check_php_version() using hash notation – #57840
  • Fix incorrect type for $crop param is various WP_Image_Editor classes and methods – #58271
  • Replace multiple single line comments with multi-line comments – #58459
  • Update link to MovableType docs (on Internet Archive) – #58760
  • Update link to MovableType documentation – #58760
  • Use third-person singular verbs in various function descriptions of load.php, as per docblocks standards – #57840

Editor

  • Enqueue commands package styles – #58667
  • Ensure blocks registered within parent theme are available when child themeChild theme A Child Theme is a customized theme based upon a Parent Theme. It’s considered best practice to create a child theme if you want to modify the CSS of your theme. https://developer.wordpress.org/themes/advanced-topics/child-themes/. is activated – #57566
  • Fix font paths in iframed editor – #58672
  • Fix layout of no-js state in site editor – #56228
  • Normalize paths in register_core_block_style_handles()#58711
  • Typo correction in Author block template description
  • adds deprecation for deleted block_core_navigation_submenu_build_css_colors function – #58623
  • fix comment indentation – #58586
  • opt out of Navigation fallback – #58750
  • rename sync_status and move it to top level – #58677
  • update npm packages with 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 and blessed tasks – #58701
  • update npm packages with bug fixes and blessed tasks – #58745
  • update string incorrectly marked for translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. in Chrome – #58716
  • update template titles in browse mode – #58713

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

  • Ensure wp_tempnam() does not produce file names longer than 255 characters as this is the limit on most filesystems – #35755

General

  • Compare values as strings in WP_List_Util::filter() and ::sort_callback()#57839
  • Fix an error introduced in [56179]
  • Increase the minimum supported version of PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher to 7.0.0 – #57345
  • Revert strict comparison in WP_List_Util for now – #57839
  • add nonce for block theme preview activation – #58712
  • fix botched file move in r56199#58712

HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. API

  • Fix a fatal error when processing malformed document with unclosed attribute – #58637

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

  • Declare a few default parameters in WP_Http_Curl and WP_Http_Streams#52622

Help/About

  • Add Help text for Rollback feature – #58199

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.

  • Move translator comments inside sprintf for tagline field description – #57675

Media

  • Avoid programmatically created images within post content from incorrectly receiving fetchpriority="high"#58235
  • Ensure custom 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 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.) supports loading optimization attributes – #58680
  • Ensure that large images before the main query loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. are counted towards lazy-loading threshold – #58635
  • Ensure that the image widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. supports loading optimization attributes – #58704
  • Fix responsive views in image editor – #58692

Options, 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. APIs

  • Check if the gmt_offset value is numeric in sanitize_option()#57728

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

  • Correct some filter docblocks – #57752

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.

  • return existing autosave after saving with unchanged data – #58739

Themes

  • Improved caching in wp_theme_has_theme_json()#58758

Users

  • Remove password reset links when the feature is not allowed for a specific user – #58194

Props

Thanks to the 100 (!) people who contributed to WordPress Core on Trac last week:

@audrasjb (22), @costdev (21), @poena (11), @mukesh27 (10), @sabernhardt (10), @sergeybiryukov (9), @spacedmonkey (8), @afercia (5), @wildworks (4), @peterwilsoncc (4), @flixos90 (4), @aristath (4), @thekt12 (3), @oglekler (3), @ramonopoly (3), @westonruter (3), @jrf (2), @azaozz (2), @mrinal013 (2), @kebbet (2), @nithins53 (2), @robinwpdeveloper (2), @joemcgill (2), @hellofromTonya (2), @masteradhoc (1), @knutsp (1), @thunderdw (1), @samiamnot (1), @JavierCasares (1), @dingo_d (1), @chanthaboune (1), @felipeelia (1), @ntsekouras (1), @kraftbj (1), @tahmina1du (1), @cshark (1), @garyjones (1), @antonvlasenko (1), @Cybr (1), @adi3890 (1), @sjoerdlinders (1), @shailu25 (1), @alvitazwar052 (1), @shuvoaftab (1), @ryelle (1), @hasanmisbah (1), @hrdelwar (1), @dhrupo (1), @dmsnell (1), @bhi3315 (1), @dlh (1), @kafleg (1), @david.binda (1), @jeremyfelt (1), @shuvo247 (1), @ndiego (1), @hztyfoon (1), @ironprogrammer (1), @ocean90 (1), @marybaum (1), @mikeyzm (1), @vivekawsm (1), @doems (1), @andraganescu (1), @dhrumilk (1), @mikinc860 (1), @zoonini (1), @akrocks (1), @nidhidhandhukiya (1), @syamraj24 (1), @jacknotman (1), @jomonthomaslobo1 (1), @nithi22 (1), @scruffian (1), @Toro_Unit (1), @eric.7186 (1), @andrewserong (1), @get_dave (1), @mikeschroder (1), @Levdbas (1), @aaronrobertshaw (1), @iamfarhan09 (1), @glendaviesnz (1), @johnbillion (1), @mrfoxtalbot (1), @jeroenrotty (1), @Mamaduka (1), @mujuonly (1), @afragen (1), @pavanpatil1 (1), @guillaumeturpin (1), @nkeller15 (1), @mikachan (1), @Rahmohn (1), @sakibmd (1), @haritpanchal (1), @isabel_brison (1), @whaze (1), @leprincenoir (1), and @Clorith (1).

Congrats and welcome to our 11 (!) new contributors of the week: @thunderdw, @tahmina1du, @cshark, @vivekawsm, @doems, @mikinc860, @akrocks, @jacknotman, @jomonthomaslobo1, @eric7186, @iamfarhan09 ♥️

Core committers: @audrasjb (39), @isabel_brison (11), @sergeybiryukov (9), @flixos90 (5), @johnbillion (4), @davidbaumwald (3), @peterwilsoncc (2), @joedolson (2), @azaozz (2), @spacedmonkey (2), @adamsilverstein (1).

#6-3, #core, #week-in-core

A Week in Core – July 3, 2023

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 June 19 and July 3, 2023.

  • 88 commits
  • 143 contributors
  • 87 tickets created
  • 19 tickets reopened
  • 115 tickets closed

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

  • Improve the name of the e2e test jobs 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 – #58661
  • Run E2E tests with and without SCRIPT_DEBUG enabled – #58661
  • Switch frame container when testing 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. editor output – #58592
  • Switch frame container when testing block editor output – #58592
  • Update terser-webpack-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#58660, – #57657

Bundled Themes

  • Twenty Fourteen: Fix text color issue on Button block hover – #58509
  • Twenty Nineteen: Add fragment ID to paginated links – #45920
  • Twenty Nineteen: Always set background color and foreground color together – #45916
  • Twenty Seventeen: Various docblockdocblock (phpdoc, xref, inline docs) fixes – #58695, #57840
  • Twenty Sixteen: Replace deprecated unbind method with off#58225
  • Twenty Sixteen – Twenty Ten: Reflect Quote block text color on the entire block – #57204
  • Twenty Ten: Prevent Block Inserter icon color override – #57414
  • Twenty Ten: Reflect Heading block text color on front-end – #56603
  • Twenty Twenty-One: Improve various globals documentation, as per docblock standards – #58684
  • Twenty Twenty-Three: Allow changing Site Title font size in Marigold and Whisper styles – #57971
  • Twenty Twenty-Two: Adjust selector to apply bottom margin to top-level comments – #58653
  • Twenty Twenty: Fix Button block text color when located in footer widgets – #57087
  • Twenty Twenty: Remove various unused function parameters and variables – #57371

Coding Standards

  • Fix a PHPCSPHP Code Sniffer PHP Code Sniffer, a popular tool for analyzing code quality. The WordPress Coding Standards rely on PHPCS. issue found in wpPluginsListTable.php
  • Revert use of str_starts_with() and str_contains() in update-core.php#58206

Database

  • Move the if statement outside of the loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop.. – #56541

Docs

  • Correct @return description for wp_count_posts()#58685
  • Fix image_get_intermediate_size() docblock – #58686, #57840

Editor

  • Add block theme previews – #58561
  • Allow Query Block to show posts from multiple selected authors – #58426
  • Enqueue commands package styles – #58667
  • Revert unnecessary changes to .jshintrc files – #12009
  • Update block-serialization-default-parser package for WP 6.3 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. 1 – #57832
  • Update npm WordPress npm packages – #58623
  • Update npm packages to fix gutenberg_ prefix – #58651
  • add Post Template fallback styles – #58570
  • add box shadow support to blocks – #58590
  • add iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. around post editor – #58626
  • add navigation fallback – 58557
  • adds deprecation for deleted block_core_navigation_submenu_build_css_colors function – #58623
  • allow filtering block patterns by source – #58622
  • delete test file from update duotone support – #58555
  • navigation post preloading – #58556#58589
  • refactor and stabilize selectors 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.#58586
  • stabilise layout and refactor definitions – #58550
  • update WordPress npm packages – #58623
  • update duotone support – #58555
  • update function name in test commentSee #58522
  • update npm packages to latest 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. versions – #58654
  • update npm packages with 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 and blessed tasks – #58701

Emoji

  • Give name to web worker in emoji loader and terminate when finished – #58472
  • Optimize emoji loader with sessionStorage, willReadFrequently, and OffscreenCanvas#58472
  • Pass functions as arguments in loader to account for minification and worker script – #58472

Filesystem API

  • Allow optional inclusion of hidden files in list_files()#53659
  • Define password as null if not set when using SSH2 with public/private key – #33196

General

  • Add missing parentheses to functions referenced in _deprecated_function() calls added in 6.3 – #58235, #58301, #58555
  • Ignore 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. types for the ‘_wp_http_referer’ URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org query variable – #57670

HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. API

  • Fix a fatal error when processing malformed document with unclosed attribute – #58637
  • Declare a few default parameters in WP_Http_Curl and WP_Http_Streams#52622

Media

  • Fix inconsistent docs for existing wp_img_tag_add_loading_attr 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. and remove duplicate – #58235
  • Only show “Copy” and “Download” actions when an attachment URL is available – #57893

Menus

  • Allow themes and plugins to pass HTML attributes to various Nav Walker outputs – #57140

Options, 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. APIs

  • Check if the gmt_offset value is numeric in sanitize_option()#57728
  • Prime networknetwork (versus site, blog) options in a single cache call using wp_cache_get_multiple – #56913

Plugins

  • Introduce the plugins_list filter – #57278

Quick/Bulk Edit

  • Add an action hook to bulk_edit_posts() function – #28112
  • Ensure scheduled posts are published when using Bulk Edit – #31635

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

  • Cache schema in block pattern and menu item endpoints – #58657
  • Check post meta update authorization only when value is changed
  • Expose current $request object to cors_header filters in WP_REST_SERVER->serve_request() – #57752
  • add 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. endpoint for global styles – #58524
  • ignore empty templates – #58615
  • updates test annotations for global styles revisions – #58524

Script Loader

  • Fix performance issues in wp_common_block_scripts_and_styles#58560
  • Fix unintended adding of async to scripts that are printed directly with wp_print_scripts() without enqueueing them beforehand – #58648
  • Prevent fatal error in load-styles.php#57629

Site Health

  • Add server time debug data – #56378
  • Correct the label for wp-content directory check – #58678
  • Include new WP_DEVELOPMENT_MODE in the list of constants – #58646

Themes

  • Block template is located twice in get_query_template()#58299
  • Fix layout issue on the Themes page background overlay – #58164
  • Use get_theme_file_path() in wp_theme_has_theme_json()#57629
  • Use improved support for child themes in wp_theme_has_theme_json()#57629

Upgrade/Install

  • Initialize the local $checkout variable in WP_Automatic_Updater::is_vcs_checkout()#58563
  • Only show errors if there is nothing to update – #57999
  • Pass the full database version string to 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/ for parsing – #58584

Users

  • Introduce the wp_update_user action – #57843

Props

Thanks to the 143 (!!) people who contributed to WordPress Core on Trac last week:

@audrasjb (23), @spacedmonkey (23), @mukesh27 (23), @costdev (19), @ramonopoly (17), @sabernhardt (15), @oglekler (15), @sergeybiryukov (12), @peterwilsoncc (11), @joemcgill (10), @flixos90 (7), @kebbet (6), @azaozz (5), @Clorith (5), @dd32 (4), @westonruter (4), @shailu25 (4), @dmsnell (4), @zunaid321 (3), @oandregal (3), @get_dave (3), @desrosj (3), @dlh (3), @jrf (3), @poena (3), @pooja1210 (3), @mikeschroder (3), @ironprogrammer (3), @onemaggie (3), @johnbillion (3), @youknowriad (2), @isabel_brison (2), @mayur8991 (2), @bernhard-reiter (2), @crstauf (2), @webcommsat (2), @adi3890 (2), @umesh84 (2), @aaronrobertshaw (2), @shuvoaftab (2), @alvitazwar052 (2), @talldanwp (2), @upadalavipul (2), @rutviksavsani (1), @TimothyBlynJacobs (1), @valterlorran (1), @hellofromtonya (1), @tanner m (1), @Cybr (1), @danyk4 (1), @lphoumpakka (1), @davidwebca (1), @ecorica (1), @azzaoz (1), @yani.iliev (1), @fischfood (1), @nateallen (1), @tyxla (1), @API (1), @jeremyfelt (1), @laurelfulford (1), @ellatrix (1), @manfcarlo (1), @rajanpanchal2028 (1), @aristath (1), @TobiasBg (1), @jorgefilipecosta (1), @andrewserong (1), @hareesh-pillai (1), @hrrarya (1), @robinwpdeveloper (1), @sebastienserre (1), @joyously (1), @options (1), @andraganescu (1), @styling (1), @flexible (1), @more (1), @enabling (1), @selectors (1), @the (1), @stabilizing (1), @config (1), @own (1), @their (1), @into (1), @scruffian (1), @ckoerner (1), @helgatheviking (1), @ramonjd (1), @Ov3rfly (1), @itpathsolutions (1), @ugyensupport (1), @afragen (1), @pbiron (1), @Presskopp (1), @pitamdey (1), @ehsanakhgari (1), @J-Dill (1), @thekt12 (1), @xknown (1), @sccr410 (1), @arafatjamil01 (1), @pavanpatil1 (1), @cadic (1), @siobhan (1), @jqz (1), @wildworks (1), @hellofromTonya (1), @sjoerdlinders (1), @ryelle (1), @hasanmisbah (1), @hrdelwar (1), @dhrupo (1), @nithins53 (1), @thakordarshil (1), @darshitrajyaguru97 (1), @Mte90 (1), @amin7 (1), @kajalgohel (1), @timothyblynjacobs (1), @anilvaza (1), @nidhidhandhukiya (1), @marybaum (1), @mensmaximus (1), @pento (1), @itowhid06 (1), @mrasharirfan (1), @afercia (1), @helen (1), @shwetabathani2312 (1), @felixarntz (1), @chaion07 (1), @rachelbaker (1), @bor0 (1), @clorith (1), @ajlende (1), @dilipbheda (1), @Malae (1), @monzuralam (1), @orestissam (1), @zodiac1978 (1), and @madhudollu (1)

Congrats and welcome to our 18 (!) new contributors of the week: @adi3890, @shuvoaftab, @valterlorran, @danyk4, @lphoumpakka, @yaniiliev, @fischfood, @rajanpanchal2028n, @hrrarya, @pitamdey, @ehsanakhgari, @sccr410, @sjoerdlinders, @hrdelwar, @darshitrajyaguru97, @anilvaza, @shwetabathani2312, and @orestissam ♥️

Core committers: @audrasjb (22), @isabel_brison (20), @sergeybiryukov (8), @davidbaumwald (6), @spacedmonkey (6), @azaozz (3), @westonruter (3), @johnbillion (3), @flixos90 (3), @bernhard-reiter (3), @kadamwhite (3), @joemcgill (2), @clorith (2), @peterwilsoncc (2), @mikeschroder (1), and @dd32 (1).

#6-3, #core, #week-in-core

WordPress 6.3 Beta 1 postponed

The WordPress 6.3 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. 1 is postponed 24 hours due to an unexpected error found during the testing phase of the release part, as styles in wp-admin are not loading unless SCRIPT_DEBUG is set to true. Contributors are investigating the issue at hand, and the release party will be resumed once fixed, tentatively on June 28th at 17:00 UTC in #core.

The cycle page has been updated accordingly.

Thanks to the community effort in testing new versions, this error was spotted early on. Thank you for your patience and continuous commitment to making WordPress!


Props to @annezazu, @audrasjb, @azaozz, and @dansoschin for the peer review.

#core #6-3

A Week in Core – June 26, 2023

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 June 19 and June 26, 2023.

  • 112 commits
  • 192 contributors
  • 68 tickets created
  • 16 tickets reopened
  • 107 tickets closed

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 the no-store and private directives to the Cache-Control 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. when preventing caching for logged in users – #21938, #57627
  • Backwards compatibility for new sortable keys – #32170
  • Consistent positioning and size of search form – #57949
  • Fix password layout for RTL and mobile – #9883
  • Fix visual regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. in media search input – #57949
  • Hide password in options/writing – #9883
  • Make checkbox column clickable – #21516
  • Reduce translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. calls after [55969]#57675
  • Replace Tagline option placeholder with a description – #57675
  • Replace contracted verb forms for better consistency – #30796
  • Set accessible state for list table headers – #32170

Bootstrap/Load

  • Require wp-includes/compat.php earlier in wp-settings.php#58206
  • Require wp-includes/compat.php in wp-load.php#58206

Build/Test Tools

  • Store artefacts of failing E2E test runs – #58596
  • Update URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org of theme 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. data – #58569
  • Update the test for pre_wp_setup_nav_menu_item 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.#56577

Bundled Themes

  • Twenty Fifteen: Fix Letter Case implementation – #58526
  • Twenty Fifteen: Remove IE specific resources – #56699
  • Twenty Fourteen: Fix Letter Case implementation – #58526
  • Twenty Nineteen: Always set background color and foreground color together – #45916
  • Twenty Nineteen: Ensure Separator 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. supports theme colors in editor – #58558
  • Twenty Nineteen: Fix a JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. coding standard issue found after [55970]#46474
  • Twenty Nineteen: Prevent a console error related to the main navigation on Firefox – #46474
  • Twenty Nineteen: Remove unused function parameters and variables – #57397
  • Twenty Nineteen: Revert [55960]#45916
  • Twenty Seventeen: Make twentyseventeen_is_static_front_page() an alias of twentyseventeen_is_frontpage()#43515
  • Twenty Seventeen: Remove IE specific resources – #56699
  • Twenty Sixteen: Fix Letter Case implementation – #58526
  • Twenty Sixteen: Fix List block padding in the editor – #58409
  • Twenty Ten: Improve Pullquote block line height for better readability – #52546
  • Twenty Thirteen: Remove IE specific resources – #56699
  • Twenty Thirteen: Remove an unnecessary border from Table block – #56538
  • Twenty Twenty-Two: Add missing subject tags and feature tags – #58437
  • Twenty Twenty: Fix Letter Case implementation – #58526
  • Twenty Twenty: Fix an RTL style issue leading to failed Test Default Themes & Create ZIPs workflow – #58396
  • Twenty Twenty: Fix left margin in Latest Posts & Latest Comments blocks – #58396
  • Twenty Twenty: Inherit Quote block’s paragraph custom letter spacing in the editor – #58033
  • Twenty Twenty: Remove various unused function parameters and variables – #57371
  • Twenty Twenty: Revert [56034] pending further investigation – #58396

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 unused usermeta global cache group – #58175

Code Modernization

  • Replace usage of strpos() with str_contains()#58206
  • Replace usage of substr() with str_starts_with() and str_ends_with()#58220
  • Use str_contains() in a few more places – #58206
  • Use str_contains() in a few more places – #58206
  • Use str_contains() in a few more places – #58220
  • Use str_ends_with() in a few more places – #58220
  • Use str_starts_with() and str_ends_with() in a few more places – #58220
  • Use str_starts_with() and str_ends_with() in a few more places – #58220
  • Use str_starts_with() in WP_Theme_JSON class methods – #58012

Coding Standards

  • Fix missing semicolon after [56009]#40966
  • Fix undeclared variable issue – #40966
  • Use Yoda condition in str_ends_with()#58220
  • Use strict comparison in wp-includes/pomo/translations.php#57839

Database

  • Replace str_contains() and str_ends_with() usage in wpdb methods – #58206

Docs

  • Add missing param description to update_menu_item_cache in wp_get_nav_menu_items()#58468, #57840
  • register_block_style() docblockdocblock (phpdoc, xref, inline docs) improvement – #58562, #57840

Editor

  • Add a description key to theme.json style variations – #58614
  • Add no-js fallback for site editor – #56228
  • Fix block editor styles being registered with frontend stylesheets – #58605
  • Fix block template utils test: use template part instead of template object – #58540
  • Improve accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) of new custom fieldCustom Field Custom Field, also referred to as post meta, is a feature in WordPress. It allows users to add additional information when writing a post, eg contributors’ names, auth. WordPress stores this information as metadata. Users can display this meta data by using template tags in their WordPress themes. UIUI User interface#15631
  • Introduce WP_Theme_JSON::prepend_to_selector() to improve code quality and performance – #58193, #58457
  • Register core block styles in one place – #58528
  • Rename wp_get_remote_patterns to wp_get_theme_directory_pattern_slugs#58460
  • Use static closures to avoid memory leaks – #58323
  • `wp_get_global_styles`: allow transforming the CSSCSS Cascading Style Sheets. Custom Properties into the values they represent – #58588
  • `wp_get_global_styles`: return the standard format for CSS Custom Properties – #58467
  • add Post Content attributes to block editor settings – #58534
  • add grid layout type – #58554
  • add grid layout type – #58554
  • add support for block-level link hover colors – #58575
  • add text columns to typography support – #58549
  • fix site editor layout 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.#56228
  • rename reusable blocks to patterns – #58577
  • revert add grid layout type – #58554
  • update layout classnames and specificity – #58548
  • use layout.wideSize as max viewport width – #58522
  • use logarithmic scale for fluid typography – #58523

Embeds

  • Add Anghami as a trusted oEmbed provider – #49850

Filesystem API

  • Attempt to create directory in copy_dir()#41855

General

  • Introduce WP_DEVELOPMENT_MODE constant to signify context-specific development mode – #57487
  • Replace substr_compare() usage in the str_ends_with() polyfill – #58220
  • Replace some instances of “blogblog (versus network, site)” with “site” in documentation, translator comments, and user-facing text strings – #58117
  • Return early from str_ends_with() polyfill if both haystack and needle are empty – #58220
  • fix overridden typos – #58464

Help/About

  • Improve Dashboard screen options behavior on small screens – #57977

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.

  • Ensure determine_locale() does not potentially return an empty string – #58317

KSES

  • Add support for CSS repeat() function – #58551

Login and Registration

  • Add required to Username/password inputs – #32510

Media

  • Automatically add fetchpriority="high" to hero image to improve load time performance – #58235
  • Display the “Copy URL” and “Download file” row actions when the “Unattached” filter is applied – #57890, #57893
  • Redirect deprecated wp-admin/media.php file – #57612

Posts, Post Types

  • Add a $previous_status parameter to wp_trash_post() related 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.#58392

Quick/Bulk Edit

  • Don’t set publish date when editing drafts – #19907

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

  • Indicate when a theme supports the Site editor in the Themes REST API response – #58123
  • Return post modified datetime for Templates – #58540

Script Loader

  • Add support for HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. 5 “async” and “defer” attributes – #12009
  • Replace str_contains() usage in wp-includes/script-loader.php#58206

Themes

  • Allow non-block themes to add theme support for border settings – #58598
  • Allow non-block themes to add theme support for link color settings – #58597
  • Change the order of path check in is_block_theme method – #58520
  • Fix caching issue in get_post_templates method in WP_Theme#57886

Tools

  • Fix unresolvable conflicts computation in package sync script – #58628

Upgrade/Install

  • Add aria-describedby for input descriptions – #58613
  • Move location of $upgrade_notice for better consistency – #57939
  • Prevent users from sending multiple bulk 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 updates – #40966
  • Show/hide toggle on password fields – #3534
  • Update ‘show details’ button change – #44714

Props

Thanks to the 192 (!!) people who contributed to WordPress Core on Trac last week:

@sabernhardt (28), @audrasjb (21), @mukesh27 (20), @costdev (19), @spacedmonkey (16), @joedolson (14), @oglekler (13), @ramonopoly (11), @sergeybiryukov (11), @poena (10), @peterwilsoncc (8), @azaozz (8), @swissspidy (8), @flixos90 (8), @afercia (6), @tb1909 (5), @isabel_brison (5), @andrewserong (5), @dd32 (5), @zunaid321 (5), @kebbet (5), @joemcgill (5), @thakordarshil (4), @pateljaymin (4), @ugyensupport (4), @panchalhimani711 (4), @nidhidhandhukiya (4), @desrosj (3), @westonruter (3), @neychok (3), @pooja1210 (3), @ironprogrammer (3), @nihar007 (3), @clorith (3), @alexstine (3), @rutviksavsani (2), @karmatosed (2), @pbiron (2), @soulseekah (2), @hellofromtonya (2), @bgoewert (2), @kafleg (2), @Cybr (2), @ryelle (2), @samnajian (2), @Soean (2), @jane (2), @upadalavipul (2), @thekt12 (2), @dhruvishah2203 (2), @NekoJonez (2), @wpnook (2), @oandregal (2), @timothyblynjacobs (2), @10upsimon (2), @kapilpaul (1), @ignatggeorgiev (1), @jorbin (1), @krupalpanchal (1), @tacoverdo (1), @ramonopoly (1), @aristath (1), @maxcgparis (1), @rianrietveld (1), @bor0 (1), @boniu91 (1), @renyot (1), @kjellr (1), @zgrkaralar (1), @sabreuse (1), @wojtek.szkutnik (1), @pamprn09 (1), @brookedot (1), @ryan (1), @denis-de-bernardy (1), @mastrup (1), @jrf (1), @otto42 (1), @williampatton (1), @maniu (1), @hellofromTonya (1), @johnjamesjacoby (1), @dimijazz (1), @laurelfulford (1), @samful (1), @monzuralam (1), @azizantoun (1), @bacoords (1), @allancole (1), @d-signed (1), @nant82 (1), @sanchothefat (1), @matmoe (1), @ronakganatra (1), @jeremyfelt (1), @aznadesign (1), @mitchoyoshitaka (1), @lessbloat (1), @ogleker (1), @Boniu91 (1), @dilipbheda (1), @joostdevalk (1), @luehrsen (1), @ianbelanger (1), @grantmkin (1), @McAlyster (1), @janpaulkleijn (1), @rehanali (1), @pavanpatil1 (1), @Dharm1025 (1), @Ankit K Gupta (1), @markdoliner (1), @ayeshrajans (1), @paulkevan (1), @andy786 (1), @johnbillion (1), @pouicpouic (1), @joyously (1), @afragen (1), @Heiko_Mamerow (1), @Denis-de-Bernardy (1), @subrataemfluence (1), @nrqsnchz (1), @fencermonir (1), @zebaafiashama (1), @rudlinkon (1), @uxtremist (1), @rfischmann (1), @youknowriad (1), @mista-flo (1), @batmoo (1), @franrosa (1), @annashopina (1), @hareesh-pillai (1), @bitnissen (1), @krupajnanda (1), @kevin940726 (1), @xkon (1), @nkeller15 (1), @mujuonly (1), @hugod (1), @davidbaumwald (1), @shailu25 (1), @harshgajipara (1), @dmsnell (1), @nadimcse (1), @glendaviesnz (1), @adamsilverstein (1), @mukeshpanchal27 (1), @mor10 (1), @scep (1), @vanaf1979 (1), @Otto42 (1), @MarcGuay (1), @bookdude13 (1), @melchoyce (1), @aaronrobertshaw (1), @adeltahri (1), @chouby (1), @Clorith (1), @ocean90 (1), @dingo_d (1), @mikeschroder (1), @dhrumilk (1), @markparnell (1), @prashantbhivsane (1), @marybaum (1), @ababir (1), @chiragrathod103 (1), @jahidcse (1), @ntsekouras (1), @ryokuhi (1), @Narthur (1), @simonemanfre (1), @intoxination (1), @vasilism (1), @xmarcos (1), @matt (1), @markjaquith (1), @nazgul (1), @akbigdog (1), @rob1n (1), @DrewAPicture (1), @MichaelH (1), @empireoflight (1), @rmccue (1), @markoheijnen (1), @r0uter (1), @amansurov (1), @bi0xid (1), @caraffande (1)

.

Congrats and welcome to our 37 (!!) new contributors of the week: @thakordarshil, @pateljaymin, @panchalhimani711, @samnajian, @dhruvishah2203, @wpnook, @maxcgparis, @renyot, @mastrup, @dimijazz, @azizantoun, @bacoords, @aznadesign, @McAlyster, @janpaulkleijn, @markdoliner, @Heiko_Mamerow, @fencermonir, @uxtremist, @rfischmann, @franrosa, @annashopina, @bitnissen, @shailu25, @harshgajipara, @nadimcse, @scep, @vanaf1979, @ababir, @jahidcse, @Narthur, @simonemanfre, @vasilism, @xmarcos, @akbigdog, @r0uter, @amansurov, and @caraffande ♥️

Core committers: @audrasjb (37), @sergeybiryukov (21), @joedolson (14), @isabel_brison (13), @peterwilsoncc (5), @flixos90 (4), @oandregal (4), @spacedmonkey (3), @swissspidy (2), @johnbillion (2), @westonruter (1), @bernhard-reiter (1), @joemcgill (1).

#6-3, #core, #week-in-core

A Week in Core – June 19, 2023

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 June 12 and June 19, 2023.

  • 41 commits
  • 61 contributors
  • 66 tickets created
  • 7 tickets reopened
  • 40 tickets closed

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

  • Revert accidental change to .env – #50523
  • Add @covers annotation to wp_set_object_terms() tests – #57841
  • Various term related test improvements – #57841

Bundled Themes

  • Fix Twenty Fourteen button 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. line-height – #58444
  • Remove load_theme_textdomain() calls from default themes – #58318
  • Twenty Seventeen: Improve Grid View variation rendering in the editor for the Post List block – #58531

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 unused usermeta global cache group – #58175

Coding Standards

  • Use strict comparison in wp-includes/class-wp-list-util.php#57839
  • Use strict comparison in wp-includes/class-wp-oembed.php#57839
  • Use strict comparison in wp-includes/pomo/entry.php#57839
  • Use strict comparison in wp-includes/pomo/mo.php#57839
  • Use strict comparison in wp-includes/pomo/streams.php#57839
  • Use strict comparison in wp-includes/pomo/translations.php#57839

Docs

  • Use third-person singular verbs in various function descriptions, as per docblocks standards – #57840
  • Use third-person singular verbs in various function descriptions, as per docblocks standards – #57840
  • Use third-person singular verbs in various function descriptions, as per docblocks standards – #57840
  • Use third-person singular verbs in various function descriptions, as per docblocks standards – #57840

Editor

  • Skip file_exist check for core blocks. – #58385
  • use layout.wideSize as max viewport width – #58522
  • use logarithmic scale for fluid typography – #58523
  • Fix lint issues in WP_Theme_JSON::sanitize method – #58462
  • Ignore unregistered block style variations from theme.json#58462

Filesystem API

  • Attempt to create directory in copy_dir()#41855

Formatting

  • Support aria content attributes – #55370

General

  • Replace some instances of “blogblog (versus network, site)” with “site” in documentation, translator comments, and user-facing text strings – #58117
  • fix overridden typos – #58464

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.

  • Allow to short-circuit load_textdomain()#58035

KSES

  • Add support for CSSCSS Cascading Style Sheets. repeat() function – #58551

Media

  • Deprecate the ‘edit_custom_thumbnail_sizes’ 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. and disable the “Apply changes to [Thumbnail|All|All except thumbnail]” UIUI User interface in the image editor. Add a (boolean) filter to reenable that UI – #57685
  • Display the “Copy URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org” and “Download file” row actions when the “Unattached” filter is applied – #57890, #57893
  • Redirect deprecated wp-admin/media.php file – #57612
  • Remove duplicate div containers – #50523
  • Update adminadmin (and super admin) image editor design – #50523

Posts, Post Types

  • Introduce item_trashed post type label – #51387

Script Loader

  • Add a check to see in style is registered in wp_maybe_inline_styles – #58394

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.

  • Prevent deprecation notices clearing terms – #57923

Themes

  • Change the order of path check in is_block_theme method – #58520
  • Fix caching issue in get_post_templates method in WP_Theme#57886
  • Inline render blocking CSS classic-themes.css#58480
  • add wp_get_remote_theme_patterns function – #58460

Upgrade/Install

  • Log in link should look like a link – #40470

Props

Thanks to the 61 people who contributed to WordPress Core on Trac last week:

@costdev (12), @sergeybiryukov (11), @afercia (9), @poena (7), @audrasjb (7), @peterwilsoncc (6), @spacedmonkey (6), @aristath (6), @joedolson (5), @oglekler (4), @azaozz (4), @mukesh27 (3), @sabernhardt (3), @kebbet (3), @swissspidy (2), @joemcgill (2), @ntsekouras (2), @nrqsnchz (2), @NekoJonez (2), @antpb (2), @isabel_brison (2), @prashantbhivsane (2), @nihar007 (2), @piyushtekwani (1), @algorithmsunlocks (1), @mayur8991 (1), @flixos90 (1), @adamsilverstein (1), @nkeller15 (1), @drw158 (1), @chaion07 (1), @ocean90 (1), @chouby (1), @karmatosed (1), @james-roberts (1), @jrf (1), @talldanwp (1), @nidhidhandhukiya (1), @crs1138 (1), @johnbillion (1), @ignatggeorgiev (1), @pbiron (1), @ramonopoly (1), @ramonopoly.
(1), @Aristath (1), @kapilpaul (1), @oandregal (1), @krupalpanchal (1), @jorbin (1), @pamprn09 (1), @rianrietveld (1), @maniu (1), @hellofromTonya (1), @caraffande (1), @zunaid321 (1), @rsiddharth (1), @ryokuhi (1), @nataliat2004 (1), @xavortm (1), @menakas (1), @dd32 (1)

.

Congrats and welcome to our 9 new contributors of the week: @prashantbhivsane, @piyushtekwani, @algorithmsunlocks, @mayur8991, @nkeller15, @crs1138, @maniu, @caraffande, @nataliat2004 ♥️

Core committers: @sergeybiryukov (9), @peterwilsoncc (6), @joedolson (6), @spacedmonkey (5), @audrasjb (5), @isabel_brison (3), @oandregal (3), @swissspidy (2), @johnbillion (1), @azaozz (1).

#6-3, #core, #week-in-core

A Week in Core – June 12, 2023

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 June 5 and June 12, 2023.

  • 30 commits
  • 48 contributors
  • 67 tickets created
  • 3 tickets reopened
  • 44 tickets closed

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 alignment in the Activity dashboard widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user.#58114

Bootstrap/Load

  • Revert [55890]#57928
  • Avoid loading a theme’s functions.php when ! wp_using_themes()#57928

Bundled Themes

  • Twenty Twenty-Three: Remove redundant px unit in a few inline styles – #58485

Coding Standards

  • Use strict comparison in wp-admin/options-writing.php#57839
  • Use strict comparison in wp-includes/class-walker-category.php#57839
  • Use strict comparison in wp-includes/class-walker-page-dropdown.php#57839
  • Use strict comparison in wp-includes/class-walker-page.php#57839
  • Use strict comparison in wp-includes/class-wp-http-streams.php#57839
  • Use strict comparison in wp-includes/class-wp-list-util.php#57839

Docs

  • Fix a few more typos in Docblocks – #58338, #57840
  • Improve various docblockdocblock (phpdoc, xref, inline docs) in WP_Query class, as per docblock standards – #57840
  • Mark apply_filters() third parameter $args as optional – #58481, #57840
  • Various docblock improvements in Custom 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 related functions, as per docblocks standards – #57840

Editor

  • Improve the append_to_selector method – #58231
  • Skip file_exist check for core blocks – #58385

Embeds

  • Add support for TikTok creator profiles – #55784

External Libraries

  • Update jQuery Migrate to version 3.4.1 – #58451

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.

  • Provide gettext context to disambiguate various translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. strings – #58424

Login and Registration

  • Grammar improvement on Sign-up user-facing strings – #58115

Media

  • Fix CSSCSS Cascading Style Sheets. layout issues in Replace media dialog – #54395

Networks and Sites

  • Require a site title when a site is created – #54012

Plugins

  • Display Auto-updates filters when the current view is “Must Use” or “Drop-in” – #54309

Query

  • Allow queries by wp_dashboard_recent_posts() to be cached – #57055

Script Loader

  • Add a check to see in style is registered in wp_maybe_inline_styles – #58394
  • Improve performance of wp_maybe_inline_styles function – #58394

Themes

  • Replace file_exists checks with call to is_block_theme method in WP_Theme class – #58405

Upgrade/Install

  • Improve WP_Upgrader strings rendering on small screens – #58477

Users

  • Use type="hidden" for hidden input on User edit administration panel – #56776

XML-RPC

  • Update RSD specification URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org in XMLRPC library – #58503

Props

Thanks to the 48 people who contributed to WordPress Core on Trac last week: @sergeybiryukov (8), @spacedmonkey (6), @afercia (6), @aristath (6), @poena (6), @audrasjb (5), @mukesh27 (5), @costdev (5), @flixos90 (3), @joemcgill (3), @kebbet (2), @sabernhardt (2), @ankitmaru (2), @sumitsingh (2), @hareesh-pillai (2), @NekoJonez (2), @ryokuhi (1), @pooja1210 (1), @chiragrathod103 (1), @dhrumilk (1), @nazmulhudadev (1), @hellofromtonya (1), @peterwilsoncc (1), @danielbachhuber (1), @nihar007 (1), @juzar (1), @bpayton (1), @pavanpatil1 (1), @siddhantwadhwani (1), @ashikurwp (1), @tushar284 (1), @Ankit K Gupta (1), @smit08 (1), @gilles66 (1), @gaeldenysiak (1), @ideag (1), @benjgrolleau (1), @alvitazwar052 (1), @anveshika (1), @mgol (1), @sstoqnov (1), @utsav72640 (1), @pbiron (1), @mamaduka (1), @oandregal (1), @wildworks (1), @dd32 (1), and @gonzomir (1).

Congrats and welcome to our 7 new contributors of the week: @nazmulhudadev, @juzar, @siddhantwadhwani, @ashikurwp, @gilles66, @gaeldenysiak, @anveshika ♥️

Core committers: @audrasjb (11), @sergeybiryukov (8), @spacedmonkey (5), @danielbachhuber (2), @swissspidy (1), @joedolson (1), @ocean90 (1), and @jorbin (1).

#6-3, #core, #week-in-core

Two Weeks in Core – June 5, 2023

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 May 22 and June 5, 2023. Sorry for not being able to publish a post last week, this one will cover two weeks!

  • 37 commits
  • 63 contributors
  • 91 tickets created
  • 9 tickets reopened
  • 71 tickets closed

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

Bundled Themes

  • Remove/disable obsolete IE-specific skip-link-focus-fix – #54421

Coding Standards

  • Improve formatting of some SQL queries for better readability – #58372
  • Use strict comparison in wp-admin/includes/menu.php#57839
  • Use strict comparison in wp-admin/includes/schema.php#58042, #58047, #57839
  • Use strict comparison in wp-admin/includes/update.php#57839
  • Use strict comparison in wp-admin/network/sites.php#57839
  • Use strict comparison in wp-admin/network/users.php#57839
  • Use strict comparison in wp-admin/users.php#57839
  • Use strict comparison in wp-includes/category.php#57839
  • Use strict comparison in wp-includes/class-walker-category.php#57839
  • Use strict comparison in wp-includes/theme-compat/comments.php#57839

Comments

  • Deprecate wp_queue_comments_for_comment_meta_lazyload function – #58301
  • Move wp_queue_comments_for_comment_meta_lazyload function to the correct file – #58301

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

  • Attempt to raise the PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher memory limit for cron event processing – #56628

Docs

  • Add a @since 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 the pre_wp_setup_nav_menu_item 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.#56577
  • Miscellaneous corrections and improvements to docblocks – #57840
  • Various docblockdocblock (phpdoc, xref, inline docs) improvements in Custom 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 related functions, as per docblocks standards – #57840

Editor

  • Use register_block_type_from_metadata in register_core_block_types_from_metadata – #58342

Emoji

  • Remove extraneous sprintf() from _print_emoji_detection_script()#58436, #44632

Editor

External Libraries

  • Update jQuery to version 3.7.0 – #58083

Formatting

  • Add support for schwa in remove_accents() – #57609

General

  • Improve performance of the _wp_array_get() function – #58376

Help/About

  • Remove unwanted space in a link located on about.php#58373
  • Reverse the order of conditionals for displaying the “Go to Updates” link – #57839

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.

  • Improve _load_textdomain_just_in_time() logic when there are no translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. files – #58321
  • Provide gettext context to disambiguate various translation strings – #58424
  • Refactor determine_locale() for performance and readability – #58317

Media

  • Conditionally skip lazy-loading on images before the loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. to improve LCP performance – #58211, #53675, #56930
  • Correct the fallback value passed to the $mimes parameter of wp_check_filetype_and_ext() from _wp_handle_upload(), and update corresponding documentation – #58349
  • Fix lazy-loading 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. by avoiding to modify content images when creating an excerptExcerpt An excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin’s metabox.#56588
  • Prevent scaling up of images in the Image Editor – #26381

Menus

  • Add a short-circuit filter to wp_setup_nav_menu_item()#56577

Options, 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. APIs

  • Change the option can_compress_scripts to be autoloaded. – #55270

Themes

  • Use correct escaping function for aria-label in _navigation_markup()#58387

Upgrade/Install

  • Avoid an extra database query in populate_network()#58423

Users

  • Make sure bulk actions are only executed with the Apply button, not Change – #57952

Props

Thanks to the 63 people who contributed to WordPress Core on Trac last week: @sergeybiryukov (14), @mukesh27 (11), @costdev (10), @aristath (9), @afercia (9), @spacedmonkey (8), @poena (8), @flixos90 (5), @swissspidy (3), @nihar007 (2), @TobiasBg (2), @thekt12 (2), @audrasjb (2), @joedolson (2), @westonruter (2), @sabernhardt (2), @desrosj (2), @sakibmd (1), @azaozz (1), @suleymankenar (1), @przemekhernik (1), @umeshmcakadi (1), @krupalpanchal (1), @dhrumilk (1), @sh4lin (1), @peterwilsoncc (1), @RavanH (1), @ellatrix (1), @mikeschroder (1), @jrf (1), @samiamnot (1), @joemcgill (1), @salvoaranzulla (1), @gziolo (1), @sarequl (1), @NekoJonez (1), @sumitbagthariya16 (1), @ahsannayem (1), @Mista-Flo (1), @markoheijnen (1), @david.binda (1), @Cybr (1), @ironprogrammer (1), @andizer (1), @faisalahammad (1), @thakkarhardik (1), @johnbillion (1), @ocean90 (1), @haritpanchal (1), @Ankit-K-Gupta (1), @iandunn (1), @pkbhatt (1), @brookedot (1), @platonkristinin (1), @gonzomir (1), @mgol (1), @jorbin (1), @hbhalodia (1), @ankitmaru (1), @sudipatel007 (1), @naeemhaque (1), @nuhel (1), and @zunaid321 (1).

Congrats and welcome to our 10 new contributors of the week: @suleymankenar, @przemekhernik, @umeshmcakadi, @sh4lin, @sarequl, @pkbhatt, @platonkristinin, @hbhalodia, @sudipatel007, @nuhel ♥️

Core committers: @sergeybiryukov (17), @audrasjb (4), @spacedmonkey (4), @johnbillion (3), @westonruter (2), @swissspidy (2), @flixos90 (2), @azaozz (1), @antpb (1), @oandregal (1).

#6-3-2, #core, #week-in-core

Developer Blog Editorial Meeting – 01 June 2023

A complete transcript of the meeting can be found in the #core-dev-blog channel in Making WordPress 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/..

Attendees: @greenshady (facilitator), @marybaum, @milana_cap, @ndiego, @webcommsat, @mburridge

Agenda:

  • Site updates and new posts
  • Project Board
    • In the works
    • Reviews needed
    • To be approved
    • new discussions on topics
  • Open Floor

Site updates and new posts

The “What’s new for developers? (May 2023)” post was tweeted about from the official WordPress social media accounts. Attendees were encouraged to re-share to their networks.

Project Board

In the works

New Posts published since the last meeting:

Topics that are currently in progress:

It should be noted that Adding custom color options for blocks has had a change of direction from what was previously approved, but this change has been approved by @greenshady and @bph.

The following posts have previously been approved and are on the to-do list. Some of them already have authors;

Reviews needed

Currently only one post is in need of review:

To be approved

The following topics were approved:

These will be converted to issues and the discussions closed. Prospective authors who would like to contribute to the Developer Blogblog (versus network, site) are invited to select one of these to work on, that hasn’t already been assigned an author.

New discussions on topics

Two topics are under discussion and have not yet been approved:

Regarding the first of these, it was considered that the topic is not yet defined enough. It also mentions using a third-party theme and a third-party 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 which prompted a discussion on whether third-party themes and plugins should be promoted in the Developer Blog. The consensus on this was that they should not be promoted in this way.

With regards to the second topic that was discussed, it was considered that the remit is too broad but that there may be some good ideas for individual posts contained within it.

Open Floor

@greenshady asked whether it might be best to allow linking/mentioning to only coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.-owned plugins/themes (i.e., official products), retaining a policy of not linking to third-party plugins/themes?

There was some disagreement on this but eventually the consensus was that only mention of wp.org made plugins/themes should be allowed.

@greenshady also suggested that it might be possible to draw a hard line on this, but allow the editorial group to decide when an edge case pops up.

A distinction was made between personal repos used for demo code in a post, and “products” such as themes and plugins in the WordPress repository.

A ticketticket Created for both bug reports and feature development on the bug tracker. will be opened to continue this discussion.

Also briefly discussed at the end of the meeting was updating the guidelines to make the review process clear.

Props to @greenshady for reviewing this post.

#core, #core-dev-blog, #meeting, #summary

WordPress 6.2 Server Performance Analysis Summary

Overview

During the 6.2 Release Cycle, members of the WordPress Performance Team performed a performance analysis in order to identify the biggest opportunities to target for future performance enhancements. To do so, the team first created a methodology that could be used to perform a repeatable process by which results could be tested and confirmed. The full methodology and analysis can be found in this document.

Analysis scope and methodology

To start, the team identified a number of key use cases that would be tested. These were meant to cover the primary out of the box functionality of a simple, default WordPress site, which included testing both a classic theme (Twenty Twenty-One) and 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. theme (Twenty Twenty-Three) both configured with the same content from the Theme Unit Test data. 5 specific scenarios were tested for both themes:

  • A homepage showing the latest posts: A common use case that includes fetching data for a list of several posts in a single request
  • A basic page that is text only: A minimal use case that can serve as a baseline against a more complex post.
  • A post page including a large set of images and default blocks: This use case allowed us to observe the effect of extra database queries and PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher routines required to render a complex page that is more realistic.
  • The same homepage, with translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization.: This allowed us to see the performance impact of WPs translation functionality compared to a non-translated site.
  • The same basic page, with translation: Same as above.

Each profiling test was done on a wp-env docker environment running PHP 7.4 (the recommended version for WP when the analysis was conducted) with XHProf installed for profiling. Other use cases and configurations were considered but not included in this initial analysis, including testing with a persistent object cache active, a 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 setup, and additional supported PHP versions.

Observations from the analysis

Below are the biggest opportunities identified for potential performance improvements, based on the profiling data collected against WordPress 6.2. An overview of the raw data for these observations is in the full results spreadsheet. When possible, relevant existing tickets for each improvement area are included for reference. These are not meant to be an exhaustive list of everything that will be addressed and additional tickets should be created as needed. 

Improve template loading and rendering for classic themes

In the classic theme tested, the most expensive process is related to locating and rendering template parts. This starts with get_template_part(), includes the process of locating the template part files with locate_template(), and rendering the content for each template part. This whole process accounted for approximately 30–60% of the entire server response in the test results, with much of that time spent handling filesystem checks (e.g., file_exists() is responsible for 4–9% of all time measured and can likely be optimized with a cache), rendering widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. blocks, etc. Given many of these filesystem checks aren’t likely to produce different outcomes often between requests, there are likely opportunities to find substantial improvements here.

Related tickets:

Improve rendering of block widgets

Related to template loading, loading and rendering block widgets (i.e. profiling WP_Widget::display_callback) took ~8–24% of the response time. This may be partially due to the inclusion of widgets in the theme test data and may not be representative of all themes. Even so, we have identified that much of this code runs even when a theme is not utilizing widgets, making it a good candidate for further exploration. It’s possible that some widgets have a larger impact than others. For example, the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. categories block used in the categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. list widget was responsible for 5–10% of the response time in our tests.

Related tickets:

Improve registration of blocks from metadata

In all test scenarios, register_block_type_from_metadata() is called 91 times and takes from 3–24% of total response time across use cases, with a larger impact on block themes than classic themes. It is heaviest on the home page, and always worse in the first request compared with subsequent ones. Again, much of this time is due to file operations that could be optimized. We could also consider techniques like lazy loading block registration based on whether blocks are in use on a page, or caching registered blocks to avoid duplicate file read operations for blocks that are unlikely to change. For block themes, block registration accounts for 15–25% of the total response time, with register_block_style_handle() specifically accounting for most of that time (184 calls, 13–21% of inclusive wall time, or iwt).

Related tickets:

Improve loading translations

In both theme types, the load_textdomain() function was called 2 times when language packs are in use (once for core, and once for the theme), and is responsible for 9–26% of the total response time (most of which is the MO::import_from_file method). This took up a higher percentage of the execution time in the classic theme tests (17–26%) than the block theme tests (9–16%), which may point to opportunities for improvement in classic themes.

  • MO::import_from_reader (1 call, 9–25% iwt)
  • MO::make_entry (4058 and 3977 calls in our classic and block use cases, respectively, 2–7.5% iwt)

Related tickets:

Improve resolving block templates

For block themes, resolving block templates from the file system takes a large amount of time. This is likely due to the need for both database and file system reads during this process. Example function paths:

  • get_block_templates (12–21% iwt)
  • get_block_theme_folders (3–6% iwt)
  • build_template_part_block_instance_variations (4–6% iwt)

Related tickets:

Improve term field sanitization

Term field sanitization is being called ~3000-5000 times during a page load in our classic theme tests—adding 1–6% to the total response time alone. A recent change has already been identified that contributed to this problem, and a fix has been committed. A deeper look into ways of reducing unnecessary calls to this function could result in additional improvements. Interestingly, block themes don’t exhibit the same problem with sanitize_term_field, as with classic themes, so it would be helpful to understand why to see if the same improvements could be applied to classic themes.

Related tickets:

  • #57966
  • #37189 (possible regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. in wp_get_object_cache)
  • #50568
  • #58327
  • #58329

Additional block theme improvements

Other notable functions that are taking up a lot of time in block themes related to parsing and using data from 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. and block registry include:

  • WP_Theme_JSON::compute_style_properties (65 calls, 2–8% iwt)
    • > WP_Theme_JSON::get_property_value (3453 calls, 1–2% iwt)
    • Note: this has since been fixed (Related PR)
  • WP_Block_Type_Registry::get_registered (homepages only: 3422 calls, 1–2% iwt)
    • Likely performance improvements can be made to WP_Block_Type_Registry::is_registered method.
  • The function, wp_maybe_inline_styles is particularly slow on the homepage, but always contributes to a large portion of the request time for block themes. (2 calls, 7–18% of iwt)

Related tickets:

Proposed priorities from the research

Of all the opportunities identified during this analysis, the ones that seem likely to produce the largest impact are the following:

  1. Improve template loading for classic themes – A majority of websites (based on an April 2023 search of the HTTPArchive) still use the classic theme architecture, so improvements made here could have the largest horizontal impact.
  2. Improve translation loading – The translation process has a large performance impact when in use. Given that 56%+ of all WordPress websites are using translations, performance improvements to the translations system should have a large horizontal impact as well.
  3. Improve handling of block registration from metadata – block registration requires expensive file reading and parsing, which could be cached. Additionally, every block might not be needed for every request, so more intelligent registration logic could eliminate the need for much of this effort.
  4. Improve resolving block templates – this is a heavy operation for block themes that is unlikely to change often unless the site templates are edited or the theme is updated. The addition of some caching mechanisms could really improve TTFB (note that some improvements to this system have already been implemented during the 6.3 release cycle).
  5. Improve rendering of block widgets – This is a lower priority when compared to the previous items due to the fact that further research is needed to determine the horizontal impact of these changes. Specifically, it’s possible that these test cases may not be representative of real world uses of block widgets.

These efforts will likely require additional research and architectural design before engineering begins. All other items identified could be worked on directly through individual TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets as capacity allows.

Future efforts worth consideration

  • Finish making the XHProf/XHGui tooling available more broadly via wp-env and a core environment integration so more people can verify and extend the work we’ve done here.
  • Reach out to hosting companies to get various platforms to run analysis on their infrastructure as well.
  • Do additional analysis on use cases not covered in this initial effort, e.g., PHP Versions, Object Caching setups, etc.)
  • Review and improve the approach used in this analysis to make it easier for the same type of research to be conducted in the future

Thank you to @annezazu, @desrosj, @flixos90, @mukesh27, @oandregal, @spacedmonkey, and @swissspidy for reviewing and helping with this post.

#6-2, #core, #performance