A Week in Core – February 12, 2024

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 February 5 and February 12, 2024.

  • 71 commits
  • 245 contributors
  • 82 tickets created
  • 11 tickets reopened
  • 82 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 contrast and consistency of focus styles – #51870

Bundled Themes

  • Twenty Fifteen: Add top margin to the File 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. button styles – #58498
  • Twenty Nineteen: Add border-radius to avatarAvatar An avatar is an image or illustration that specifically refers to a character that represents an online user. It’s usually a square box that appears next to the user’s name. images in the editor – #59285
  • Twenty Nineteen: Correct line height for Button block – #58443
  • Twenty Nineteen: Restore transition property to a single line – #58443
  • Twenty Sixteen: Add border-radius to avatar images in the editor – #59253
  • Twenty Twenty-Four: Add missing translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. functions to text strings – #60298
  • Twenty Twenty-Four: Prefix the block pattern categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. name – #59839
  • Twenty Twenty-Three: Include Latin-extended characters in DM Sans font files – #59008
  • Twenty Twenty-Two: Prefix the pages block pattern category name – #59839
  • Twenty Twenty: Fix Table block default and custom border colors – #58022
  • Twenty Twenty: Scope .privacy-policy styles to the footer only – #60469
  • Improve focus outline in Twenty Twenty-Four – #60334
  • Cast font URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org functions to string for add_editor_style()#59704

Build/Test Tools

  • 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. pulling local environment containers on Apple silicone – #59930
  • Generate a human-readable HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. coverage report – #60476
  • Make the props bot message shorter – #60417
  • Pin a specific commit for Hosting Test Reporter – #59647
  • Revert [57551]#59647
  • Unpin PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 7.4 from the test coverage workflow – #59647
  • Adjust 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 time in wp_scheduled_delete() tests – #59938

Canonical

  • Introduce admin_canonical_url 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.#59545

Coding Standards

  • Add missing fullstop to docblocks in wp-includes/vars.php#41877
  • Replace alias join() in WP_Font_Utils#60473

Editor

  • Add viewScriptModule handling to block.json metadata – #60233
  • Add wakeup magic method to the block bindings registry – #60282
  • Avoid double escaping on value passed for attribute in HTML 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.) processor
  • Expand Block Bindings for button block – #60481
  • Fix block style variation selector generation – #60453
  • Fix typo in FontUtils doc block – #59166
  • Improve code documentation for block bindings – #60282
  • Introduce WP_Block_Bindings_Source class – #60447
  • Make asset file optional for block scripts – #57234
  • Refactor block binding processing and attribute computation – #60282
  • Register the Google Font collection – #59166
  • Show the patterns page for classic themes – #58827
  • Update PHPDocPHPDoc (docblock, inline docs) for block bindings’s context arg – #59743
  • Update pattern overrides attribute format – #60456
  • Update the WordPress packages to 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/ 17.7RC1 – #60315
  • Block 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.: Inject hooked blocks into modified templates and parts – #59646
  • Blocks: Allow reading the script handle from asset files – #60485
  • Interactivity 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.: Integrate Server Directive Processing – #60356
  • Interactivity API: Remove empty file – #60356

Filesystem API

  • Fix typo in ftp_base::restore()#60497

General

  • Add an option to configure the site icon in general settings – #54370, #16434
  • Remove ableist language from code comments – #60247

HTML API

  • Add subclassed has_bookmark() and fix seek() – #60474
  • Join text nodes on 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.-tag-name boundaries – #60385

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.

  • Add Translator comments for Planet URLs – #58010

Media

  • Update progress spinner position on small screens – #33049
  • enable control of progressive image output – #21668

Networks and Sites

  • Improve switch_to_blog() docblockdocblock (phpdoc, xref, inline docs)#60332

Permalinks

  • Detect Caddy web server support – #41877

Plugins

  • Store 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 deletion results in temporary option – #59433

Quick/Bulk Edit

  • Pre-fill category fields with their status – #11302

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 featured_media field to attachments endpoint – #41692
  • Improve error handling in REST meta fields – #48823
  • Introduce the necessary endpoints for the font library – #59166
  • Provide detailed error data in REST API response – #60014

Script Loader

  • Add a timezone offset display value to wp.date.setSettings – #60105
  • Improve translators comments for wp.date.setSettings in compat file – #60412
  • always output core block global styles after base global styles – #60280
  • Add deregister module function – #60463

Shortcodes

  • Always return an array in shortcode_parse_atts()#59249

Themes

  • Add ‘theme_files’ cache group to block pattern cache operations – #60120
  • update add_theme_support docblock – #60221

Toolbar

  • Add adminbar link for new sites in networknetwork (versus site, blog) installs – #41104

Upgrade/Install

  • Avoid update_option() calls during bootstrap – #60461, #60457, #60491
  • Upgrade/Install: Introduce Plugin Dependencies – #22316
  • Micro-optimizations for getting plugin_file in plugins loader 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.#60510
  • Remove unnecessary individual subfiles from $_old_files array – #58995

Users

  • Replace table tags for color palettes in profiles – #53157

Props

Thanks to the 245 (!!) people who contributed to WordPress Core on Trac: @gziolo (14), @mukesh27 (13), @swissspidy (13), @sabernhardt (13), @poena (12), @shailu25 (11), @huzaifaalmesbah (9), @youknowriad (8), @oglekler (7), @joedolson (7), @jorbin (7), @audrasjb (7), @spacedmonkey (6), @SergeyBiryukov (6), @dmsnell (6), @get_dave (6), @hellofromTonya (5), @afercia (5), @kebbet (5), @harshgajipara (5), @johnbillion (5), @costdev (4), @nicolefurlan (4), @jonsurrell (4), @czapla (4), @TimothyBlynJacobs (3), @karmatosed (3), @pbiron (3), @desrosj (3), @afragen (3), @azaozz (3), @luisherranz (3), @dingo_d (2), @mikeschroder (2), @andraganescu (2), @johnjamesjacoby (2), @rajinsharwar (2), @nidhidhandhukiya (2), @cbravobernal (2), @dd32 (2), @wildworks (2), @pooja1210 (2), @wasiur195 (2), @scribu (2), @ajmcfadyen (2), @peterwilsoncc (2), @pitamdey (2), @santosguillamot (2), @isabel_brison (2), @bernhard-reiter (2), @mcsf (2), @ocean90 (2), @aaronrobertshaw (2), @sadpencil (1), @cfinnberg (1), @viliamkopecky (1), @ecc (1), @rcorrales (1), @cvorko (1), @flixos90 (1), @joemcgill (1), @adamsilverstein (1), @_ck_ (1), @markoheijnen (1), @Japh (1), @pmeenan (1), @derekspringer (1), @buley (1), @ericlewis (1), @bahia0019 (1), @born2webdesign (1), @kushang78 (1), @timothyblynjacobs (1), @wonderboymusic (1), @dlh (1), @obenland (1), @jameskoster (1), @kjellr (1), @stacimc (1), @h71 (1), @krupajnanda (1), @jordesign (1), @monzuralam (1), @hrrarya (1), @fnpen (1), @mhshohel (1), @bedas (1), @jeremyfelt (1), @prionkor (1), @matveb (1), @benniledl (1), @jsnajdr (1), @mnydigital (1), @onemaggie (1), @luminuu (1), @pouicpouic (1), @ugyensupport (1), @jivygraphics (1), @sumitbagthariya16 (1), @kkmuffme (1), @talldanwp (1), @dartiss (1), @upadalavipul (1), @manfcarlo (1), @mayur8991 (1), @panchalhimani711 (1), @itpathsolutions (1), @thakordarshil (1), @Ankit-K-Gupta (1), @darshitrajyaguru97 (1), @pavelevap (1), @chasedsiedu (1), @helen (1), @joshcanhelp (1), @ubernaut (1), @Cyberchicken (1), @laumindproductscomau (1), @Marcoevich (1), @tomybyte (1), @thinkluke (1), @virtality-marketing-solutions (1), @Michalooki (1), @itecrs (1), @pannelars (1), @WHSajid (1), @samba45 (1), @Mte90 (1), @tomluckies (1), @soulseekah (1), @francina (1), @webcommsat (1), @balub (1), @sarathar (1), @glendaviesnz (1), @up1512001 (1), @zodiac1978 (1), @davidbinda (1), @westonruter (1), @retrofox (1), @joefusco (1), @colorfultones (1), @acosmin (1), @alh0319 (1), @beafialho (1), @javiercasares (1), @mmaattiiaass (1), @grantmkin (1), @oandregal (1), @ajlende (1), @ahoereth (1), @alanfuller (1), @alexkingorg (1), @amykamala (1), @anonymized_10690803 (1), @apeatling (1), @ashfame (1), @atimmer (1), @aristath (1), @batmoo (1), @beaulebens (1), @blobaugh (1), @bobbingwide (1), @boonebgorges (1), @brianhenryie (1), @chanthaboune (1), @chrisdavidmiles (1), @coolmann (1), @courane01 (1), @danielbachhuber (1), @davidperez (1), @Denis-de-Bernardy (1), @DJPaul (1), @dougal (1), @DrewAPicture (1), @ethitter (1), @filosofo (1), @georgestephanis (1), @giuseppemazzapica-1 (1), @goldenapples (1), @griffinjt (1), @husobj (1), @ideag (1), @jarednova (1), @jbobich (1), @jbrinley (1), @jltallon (1), @johnciacia (1), @joppuyo (1), @jsmoriss (1), @knutsp (1), @kraftbj (1), @kraftner (1), @kurtpayne (1), @lkraav (1), @logikal16 (1), @man4toman (1), @markjaquith (1), @matt (1), @mbijon (1), @megphillips91 (1), @mikeschinkel (1), @mordauk (1), @morehawes (1), @mrwweb (1), @mte90 (1), @mzaweb (1), @nacin (1), @norcross (1), @nvwd (1), @nwjames (1), @obliviousharmony (1), @paaljoachim (1), @pauldewouters (1), @pbaylies (1), @Philipp15b (1), @pogidude (1), @retlehs (1), @rmccue (1), @ryan (1), @sabreuse (1), @sc0ttkclark (1), @sereedmedia (1), @ShaneF (1), @shidouhikari (1), @soean (1), @stephenh1988 (1), @taylorde (1), @tazotodua (1), @threadi (1), @TJNowell (1), @tollmanz (1), @toscho (1), @tropicalista (1), @Viper007Bond (1), @westi (1), @whiteshadow (1), @williamsba1 (1), @wpsmith (1), @ZaneMatthew (1), @noisysocks (1), @kevin940726 (1), and @fabiankaegy (1).

Congrats and welcome to our 28 (!!) new contributors of the week: @sadpencil, @cfinnberg, @viliamkopecky, @ecc, @cvorko, @pmeenan, @derekspringer, @born2webdesign, @kushang78, @hrrarya, @fnpen, @mhshohel, @benniledl, @mnydigital, @up1512001, @alh0319, @anonymized_10690803, @blobaugh, @chrisdavidmiles, @giuseppemazzapica-1, @jltallon, @johnciacia, @logikal16, @pbaylies, @Philipp15b, @pogidude, @tropicalista, @whiteshadow ♥️

Core committers: @gziolo (11), @youknowriad (10), @sergeybiryukov (8), @audrasjb (7), @joedolson (7), @swissspidy (5), @desrosj (5), @spacedmonkey (3), @jorbin (3), @costdev (3), @hellofromtonya (2), @dmsnell (2), @isabel_brison (2), @adamsilverstein (1), @davidbaumwald (1), and @bernhard-reiter (1).

#6-5, #core, #week-in-core

Four Weeks in Core – October 9, 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 September 4 and October 9, 2023.

Please note that exceptionally and because of personal vacations, this Week in Core issue covers 4 weeks 😊

  • 269 commits
  • 337 contributors
  • 295 tickets created
  • 43 tickets reopened
  • 277 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.

Continue reading

#6-4, #core, #week-in-core

Two Weeks in Core – August 14, 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 31 and August 14, 2023.

  • 40 commits
  • 50 contributors
  • 164 tickets created
  • 15 tickets reopened
  • 138 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

  • Bump the required versions of Node.js and npm – #56658
  • Correct two @covers annotations to use the recommended pattern – #59069
  • Update 3rd-party 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 – #58867
  • Update all build tool related dependencies – #58863
  • Update the README file to reflect new Node.js/npm versions – #59071, #56658
  • revert downgrade of uuid – #58623
  • Fix leakage in WP_List_Table tests – #58955, #58896

Code Modernization

  • Deprecate dynamic properties in WP_List_Table magic methods – #58896, #56034
  • Deprecate dynamic properties in WP_Text_Diff_Renderer_Table magic methods – #58898, #56034
  • Deprecate dynamic properties in WP_User_Query magic methods – #58897, #56034
  • Use “declare” in WP_List_Table magic methods deprecation message – #58896

Coding Standards

  • Bring more consistency to Last-Modified and ETag checks – #58831
  • Rewrite loose comparison in wp_list_categories()#58831
  • Use instanceof keyword instead of the is_a() function – #58943
  • Use strict comparison in wp-admin/includes/class-wp-importer.php#58831
  • Use strict comparison in wp-includes/class-wp-image-editor.php#58831
  • Use strict comparison in wp-includes/class-wp.php#58831
  • Use strict comparison in wp-includes/cron.php#58831
  • Use strict comparison in wp-includes/kses.php#58831
  • Use strict comparison in wp-includes/revision.php#58831

Docs

  • Correct duplicate hook reference for wp_min_priority_img_pixels#59067
  • Remove @see references for SimplePie classes – #59030

Editor

  • Only exclude auto-generated 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. files from coding standards checks – #50010
  • Simplify usage of block_has_support() function by supporting a string – #58532

Embeds

  • Modernize wp-embed script with removal of obsolete IE10/IE11 code and support for WP 4.4 and below – #58974

Emoji

  • Suppress console errors from sessionStorage usage in sandboxed post embed 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.#58978, #58472

External Libraries

  • Update Backbone.js to version 1.5.0#58930
  • Update imagesLoaded to version 5.0.0#56731
  • Update the whatwg-fetch polyfill library – #59066

HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. 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 support for BUTTON element – #58961
  • Adjust code styling to 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/’s linter’s preferences – #58918
  • Fix missing * for docblockdocblock (phpdoc, xref, inline docs)#58918. – #59010

Media

  • Simplify logic in wp_get_loading_optimization_attributes()#58891

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

  • Expand $autoload parameter documentation – #58963

Script Loader

  • Use defer loading strategy for wp-embed script and move to head (in block themes) – #58931

Site Health

  • Use PHP_SAPI constant instead of the php_sapi_name() function – #58942

Themes

  • Avoid unnecessary check whether parent template file exists when not using a 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/.#58576
  • add wp_get_theme_data_template_parts function – #59003

Upgrade/Install

  • Update $_old_files for 6.3 – #58994

Users

  • Correct the logic for switch_to_blog() in WP_User_Query::generate_cache_key()#59011

Props

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

@sergeybiryukov (13), @aristath (7), @rajinsharwar (7), @afercia (7), @poena (7), @costdev (6), @jrf (5), @antonvlasenko (5), @hellofromTonya (5), @mukesh27 (5), @audrasjb (5), @peterwilsoncc (4), @swissspidy (4), @desrosj (4), @hareesh-pillai (3), @ayeshrajans (3), @dmsnell (3), @flixos90 (3), @westonruter (3), @markjaquith (3), @oglekler (3), @jeffpaul (3), @thekt12 (2), @nihar007 (2), @nazsabuz (1), @arnedb (1), @Hareesh (1), @spacedmonkey (1), @Pillai (1), @JeffPaul (1), @joemcgill (1), @davidbaumwald (1), @crstauf (1), @kevin940726 (1), @khokansardar (1), @Rahe (1), @adamsilverstein (1), @valmedia2023 (1), @dantovbein (1), @hbhalodia (1), @tmatsuur (1), @felixarntz (1), @gziolo (1), @ahmedgeek (1), @dd32 (1), @austinginder (1), @RavanH (1), @lopo (1), @youknowriad (1), and @rmccue (1).

Congrats and welcome to our 5 new contributors of the week: @nazsabuz, @arnedb, @valmedia2023, @dantovbein, @ahmedgeek ♥️

Core committers: @sergeybiryukov (14), @desrosj (7), @hellofromtonya (5), @flixos90 (4), @westonruter (3), @bernhard-reiter (2), @johnbillion (1), @oandregal (1), @jorbin (1), @davidbaumwald (1), and @isabel_brison (1).

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

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

Two Weeks in Core – April 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 March 20 and April 3, 2023. Sorry for not being able to publish a post last week, this one will cover two weeks!

  • 38 commits
  • 76 contributors
  • 120 tickets created
  • 19 tickets reopened
  • 86 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

  • Update dashboard welcome panel colors, remove broken link – #57759

Build/Test Tools

  • Fix issue with add method in object-cache.php – #57963
  • Add a@ticketreference forwp_list_pages()CSSCSS Cascading Style Sheets. classes test – #57841
  • Consistently sanitize expiration in the test suite’s Memcached implementation – #57841, #57963
  • Fix tests introduced in [55612]#57814
  • Improveget_pages()tests organization – #57841
  • Movewp_dropdown_pages()tests to their own file – #57841
  • Move thewp_list_pages()test for CSS classes to a more appropriate place – #57841
  • Rename test class and improve tests for wp_get_global_stylesheet() – #57841, #57958
  • Split the tests frompost/template.phpinto individual test classes – #57841

Code Modernization

Coding Standards

  • Apply various alignment corrections fromcomposer format#57994
  • Correct the 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.) placement in some adminadmin (and super admin) files – #58053
  • Escape some variables inwp-admin/includes/nav-menu.php#57110
  • Escape the whole attributes inwp-admin/includes/nav-menu.php#57110
  • Remove unused variable inWP_Plugins_List_Table::single_row()#55132
  • Use strict comparison inwp-admin/includes/nav-menu.php#57318
  • Use strict comparison inwp-admin/includes/user.php#57317
  • Use the correct variable – #57318

Comments

  • Use correct escaping function inget_cancel_comment_reply_link()#58025
  • Use wp_cache_get_multiple inWP_Comment_Query#57803

Date/Time

Docs

  • Add missing@returntag forWP_Automatic_Updater::is_disabled()#57680
  • Clarify the::hide_process_failed()return value 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 and theme installer – #57680
  • Document default values for optional parameters inwp_insert_attachment()#58043
  • Use typed array notation forsearch_columnsinWP_Query::parse_query()#57996

Editor

General

  • Remove Windows Live Writer manifest file – #41404

HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. 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.

  • Addhas_self_closing_flag()to Tag Processor – #58009

Help/About

  • Add Field GuideField guide The field guide is a type of blogpost published on Make/Core during the release candidate phase of the WordPress release cycle. The field guide generally lists all the dev notes published during the beta cycle. This guide is linked in the about page of the corresponding version of WordPress, in the release post and in the HelpHub version page. link – #57998
  • Make Field Guide link translatable – #57477
  • Updates to About page – #57477

Login and Registration

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

  • Improve the lazy loading meta API to include current object id – #57901

Posts, Post Types

  • Use WP_Query internally in get_pages – #12821

Script Loader

  • Return early in _wp_theme_json_webfonts_handler if 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. not present – #57814

Upgrade/Install

  • Include the removed Windows Live Writer manifest in$_old_files#41404

Props

Thanks to the 76 people who contributed to WordPress Core on Trac last week: @sergeybiryukov (9), @spacedmonkey (6), @costdev (6), @hellofromTonya (6), @jrf (5), @mukesh27 (4), @flixos90 (4), @peterwilsoncc (4), @audrasjb (3), @desrosj (3), @ocean90 (3), @patelmohip (2), @jenilk (2), @johnbillion (2), @sabernhardt (2), @davidbaumwald (2), @laurlittle (2), @richtabor (2), @akmelias (2), @sakibmd (2), @ankitmaru (1), @wlindley (1), @ayeshrajans (1), @azouamauriac (1), @mikeschinkel (1), @nacin (1), @scribu (1), @filosofo (1), @jane (1), @garyc40 (1), @markoheijnen (1), @grandslambert (1), @kevinB (1), @dbernar1 (1), @ryokuhi (1), @atimmer (1), @mdawaffe (1), @helen (1), @benjibee (1), @joemcgill (1), @andraganescu (1), @get_dave (1), @mamaduka (1), @ntsekouras (1), @scruffian (1), @talldanwp (1), @jhabdas (1), @ironprogrammer (1), @tillkruess (1), @francina (1), @chintan1896 (1), @zenaulislam (1), @javiercasares (1), @oglekler (1), @clorith (1), @eboxnet (1), @wpfy (1), @vladytimy (1), @reputeinfosystems (1), @Rarst (1), @priethor (1), @nekojonez (1), @markjaquith (1), @codingchicken (1), @cbringmann (1), @tmatsuur (1), @joostdevalk (1), @faisalahammad (1), @zieladam (1), @dmsnell (1), @wtranch (1), @polevaultweb (1), @azaozz (1), @Frank Klein (1), @antonvlasenko (1), and @thomask (1).

Congrats and welcome to our 8 new contributors of the week: @patelmohip, @akmelias, @wlindley, @grandslambert, @benjibee, @wpfy, @reputeinfosystems, @wtranch ♥️

Core committers: @sergeybiryukov (20), @spacedmonkey (6), @hellofromtonya (6), @audrasjb (2), @ryelle (2), @bernhard-reiter (1), and @dd32 (1).

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

A Week in Core – March 20, 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 March 13 and March 20, 2023.

  • 30 commits
  • 70 contributors
  • 51 tickets created
  • 4 tickets reopened
  • 46 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

  • Define the $title global on the Menus screen for classic themes – #57918
  • Update dashboard welcome panel colors, remove broken link – #57759

Build/Test Tools

  • Fix issue with add method in object-cache.php – #57963
  • Revert [55553]#57864
  • Add test class for wp_enqueue_stored_styles()#57841
  • Add test class for wp_script_is()#57841, #57958
  • Improve documentation and variable names in some formatting tests – #57841
  • Rename test class and improve tests for wp_get_global_stylesheet() – #57841, #57958
  • Use the data_ prefix for various data provider methods – #57841

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 a warning when calling _get_non_cached_ids with 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. ids – #57593
  • Correct the second parameter’s name in _get_non_cached_ids()#40420

Code Modernization

Coding Standards

  • Remove unused variable in WP_Plugins_List_Table::single_row()#55132
  • Remove unused variables in WP_Comment_Query#57482
  • Use single quotes for strings without variables in register_block_style_handle()#57903

Date/Time

  • Remove usage of mysql2date in generate_postdata method – #57683

Docs

  • Fix typo in _validate_cache_id() description – #57593

Editor

  • Correctly load RTL stylesheets for non-core blocks – #57903
  • Show scheduled text when changing to new future dates – #31040
  • Update wordpress packages for 6.2 RC2 – #57471#57895
  • Update wordpress packages for 6.2 RC3 – #57471, #57929

External Libraries

  • Upgrade PHPMailer to version 6.8.0 – #57873

Filesystem API

  • Return false for empty paths in 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. ::exists() methods – #33058

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

  • Add bookmark invalidation logic – #57788

Help/About

  • Add CDN images to About page – #57477
  • Updates to About page – #57477

KSES

  • Allow filter property to accept a URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org in safecss_filter_attr()#57780

Posts, Post Types

  • Use WP_Query internally in get_pages – #12821

Quick/Bulk Edit

  • Show scheduled in status for future drafts – #38834

Widgets

  • Defer register inline script in WP_Widget_Custom_HTML and WP_Widget_Text#57864

Props

Thanks to the 70 people who contributed to WordPress Core on Trac last week: @sergeybiryukov (8), @costdev (7), @hellofromTonya (6), @spacedmonkey (6), @flixos90 (4), @richtabor (3), @peterwilsoncc (3), @antonvlasenko (2), @audrasjb (2), @azaozz (2), @scruffian (2), @mamaduka (2), @ironprogrammer (2), @laurlittle (2), @jrf (2), @sabernhardt (2), @mkox (1), @joedolson (1), @ipstenu (1), @MrFlannagan (1), @oglekler (1), @upadalavipul (1), @dingo_d (1), @Rarst (1), @ayeshrajans (1), @Synchro (1), @Zdrobau (1), @tyxla (1), @dd32 (1), @pbiron (1), @mukesh27 (1), @bernhard-reiter (1), @dmsnell (1), @zieladam (1), @sakibmd (1), @westonruter (1), @nendeb55 (1), @david.binda (1), @tillkruess (1), @tobifjellner (1), @sdavis2702 (1), @jeryj (1), @markjaquith (1), @dbernar1 (1), @azouamauriac (1), @mikeschinkel (1), @nacin (1), @scribu (1), @filosofo (1), @jane (1), @garyc40 (1), @markoheijnen (1), @grandslambert (1), @kevinB (1), @wlindley (1), @atimmer (1), @ryokuhi (1), @mdawaffe (1), @helen (1), @benjibee (1), @johnbillion (1), @joemcgill (1), @andraganescu (1), @get_dave (1), @ntsekouras (1), @desrosj (1), @talldanwp (1), @thomask (1), @johnjamesjacoby (1), and @davidbaumwald (1).

Congrats and welcome to our 6 new contributors of the week: @MrFlannagan, @Zdrobau, @grandslambert, @wlindley, @benjibee, @thomask ♥️

Core committers: @sergeybiryukov (12), @hellofromtonya (7), @spacedmonkey (6), @ryelle (3), and @joedolson (2).

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

A Week in Core – February 27, 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 February 20 and February 27, 2023.

  • 45 commits
  • 103 contributors
  • 50 tickets created
  • 7 tickets reopened
  • 64 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

  • Move wp-theme-plugin-editor script before – #57073

Bootstrap/Load

  • Check that either mysqli_connect() or mysql_connect() is available – #51988

Build/Test Tools

  • Add test coverage for the get_posts_navigation() function – #55751
  • Remove duplicate DocBlockdocblock (phpdoc, xref, inline docs) opening characters in tests/theme/wpTheme.php#56792

Bundled Themes

  • Twenty Seventeen: Mark one more screen reader string with a translator comment – #29748
  • Twenty Twenty: Avoid PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher warnings in 8.1 due to incorrect usage of wp_add_inline_style()#57777

Coding Standards

  • Use strict comparison in bundled themes’ PHP files – #56791

Comments

  • Prevent replying to unapproved comments – #53962
  • Restore global $comment assignment in comment_form_title() – #53962

Database

  • Remove the check for sitecategories table on Database Repair screen – #57762

Docs

  • Correct duplicate hook reference for notify_moderator#57808
  • Document default values for optional parameters in various DocBlocks – #56792
  • Fix erroneous since mention in wp_internal_hosts hook – #57796

Editor

  • Fix ‘wp-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.-library-theme’ style enqueue conditions – #57561
  • Fix 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. parameters being passed to wp_register_style()#57771, #56990, #57688
  • Update the WP packages with fixes prior to WP 6.2 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. 3 – #57471

Formatting

  • Add aspect-ratio tests for safecss_filter_attr()#57664

General

  • Add more error checking to WP_List_Util::pluck()#56650

HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. 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.

  • Fix finding bookmarks set on closing 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.) WP_HTML_Tag_Processor – #57787, #57575
  • Set $this->html to protected to support subclassing – #57575
  • Add fragment support to WP_Http::make_absolute_url()#56231

Help/About

  • Avoid extra redirections on HelpHub Links – #57726
  • Avoid extra redirections on HelpHub Links – #57726
  • Restore the correct URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org for Editing Files article on Edit Themes screen – #57726
  • Use a consistent capitalization for “Support forums” links across WP Adminadmin (and super admin)#57726
  • Use a consistent capitalization for “Support forums” links across WP Admin – #57726
  • Use the new /documentation/ URLs for HelpHub links in Bundled Themes – #57726
  • Use the new /documentation/ URLs for HelpHub links in WordPress Admin – #57726

Mail

  • Fix character encoding issues 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/Theme background update emails – #56964

Media

  • Add WP_Image_Editor_Imagick::set_imagick_time_limit() method – #52569

Networks and Sites

  • Fix the attributes for the email input field on the new networknetwork (versus site, blog) user screen – #38460
  • Remove confusing upper case for option names on Edit Site: Settings screen – #50572
  • Use consistent markup for admin notices – #39213

Posts, Post Types

  • Pass the post object to _update_posts_count_on_delete()#57023

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.

  • Remove an unnecessary call to _doing_it_wrong() and corresponding new text string from the implementation of the new wp_save_post_revision_revisions_before_deletion 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.#57320

Site Health

  • Use PasswordHash API directly when validating keys – #56787

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.

  • Rename temporary variable in wp_queue_posts_for_term_meta_lazyload()#57150

Themes

  • Account for a numeric theme directory in WP_Theme::__construct()#54645
  • Add 3 and update 2 shadow presets in theme.json#57708, #57559

Toolbar

  • Update the URL for Documentation link in the admin bar – #57726

Upgrade/Install

  • Introduce WP_Automatic_Updater::is_allowed_dir() method – #42619

Users

  • Adjust the initialization of the $duplicated_keys array in wp_salt()#57121
  • Fix confirmation link for 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 users with no role – #57164

Widgets

  • Match variable types in rss feedRSS Feed RSS is an acronym for Real Simple Syndication which is a type of web feed which allows users to access updates to online content in a standardized, computer-readable format. This is the feed. link filter – #57594

Props

Thanks to the 103 (!) people who contributed to WordPress Core on Trac last week: @sergeybiryukov (15), @costdev (12), @audrasjb (11), @sabernhardt (9), @hellofromTonya (5), @flixos90 (4), @mukesh27 (4), @dhrupo (3), @poena (3), @desrosj (3), @Ankit-K-Gupta (2), @afragen (2), @hellofromtonya (2), @dmsnell (2), @hasanmisbah (2), @sakibmd (2), @jrf (2), @afercia (2), @dd32 (2), @robinwpdeveloper (2), @afrin29 (2), @mamaduka (2), @scruffian (2), @ipajen (2), @johnbillion (2), @richtabor (1), @drzraf (1), @fabiankaegy (1), @priethor (1), @ajlende (1), @jameskoster (1), @oandregal (1), @mtias (1), @kellychoffman (1), @joen (1), @beafialho (1), @antpb (1), @adityaarora010196 (1), @skithund (1), @boniu91 (1), @sc0ttkclark (1), @dimadin (1), @bgin (1), @sannevndrmeulen (1), @ndiego (1), @jffng (1), @glendaviesnz (1), @mikachan (1), @milana_cap (1), @fasuto (1), @Chouby (1), @schlessera (1), @dshanske (1), @ellatrix (1), @ntsekouras (1), @roytanck (1), @calvinalkan (1), @paulkevan (1), @ocean90 (1), @joemcgill (1), @madhudollu (1), @sanketchodavadiya (1), @franz00 (1), @swissspidy (1), @meyegui (1), @markjaquith (1), @spacedmonkey (1), @hugodevos (1), @winterpsv (1), @alvastar (1), @lopo (1), @simongomes02 (1), @robin-labadie (1), @wildworks (1), @chrisbaltazar (1), @sun (1), @geisthanen (1), @joyously (1), @michelmany (1), @jongycastillo (1), @rahmohn (1), @arnolp (1), @pbiron (1), @zieladam (1), @benjgrolleau (1), @afshanadiya (1), @Mista-Flo (1), @adeltahri (1), @stalukder03 (1), @dilipbheda (1), @itsnikhilpatel (1), @paulamit (1), @paulschreiber (1), @zevilz (1), @joedolson (1), @obayedmamur (1), @aryamaaru (1), @jeremyfelt (1), @stevenkword (1), @marksabbath (1), @aristath (1), @chiragrathod103 (1), and @azaozz (1).

Congrats and welcome to our 21 (!!) new contributors of the week: @hasanmisbah, @sakibmd, @adityaarora010196, @fasuto, @calvinalkan, @meyegui, @winterpsv, @alvastar, @simongomes02, @robin-labadie, @chrisbaltazar, @sun, @geisthanen, @michelmany, @jongycastillo, @arnolp, @itsnikhilpatel, @paulamit, @zevilz, @marksabbath, @chiragrathod103 ♥️

Core committers: @sergeybiryukov (15), @audrasjb (14), @hellofromtonya (4), @peterwilsoncc (3), @flixos90 (2), @joedolson (2), @johnbillion (2), @ocean90 (1), @timothyblynjacobs (1), and @gziolo (1).

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

A Week in Core – January 16, 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 January 9 and January 16, 2022.

  • 43 commits
  • 50 contributors
  • 44 tickets created
  • 3 tickets reopened
  • 41 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

  • Fix an incorrect inline comment in Tests_Ajax_wpAjaxReplytoComment#57452
  • Move the test for wp_save_image_file() with a GD resource to a more appropriate place – #56793
  • Use more specific assertions in image saving tests – #56793

Bundled Themes

  • Add Mastodon domains for menu item icons – #57293, #49099
  • Twenty Twenty-Three: Fix incorrect gradient values in Aubergine theme – #57245

Code Modernization

  • Fix a jQuery Migrate deprecation in wpdialog#56830
  • Rename parameters that use reserved keywords in phpunit/tests/cron.php#56788
  • Rename parameters that use reserved keywords in phpunit/tests/customize/manager.php#56788
  • Rename parameters that use reserved keywords in phpunit/tests/customize/nav-menus.php#56788
  • Rename parameters that use reserved keywords in phpunit/tests/customize/setting.php#56788
  • Rename parameters that use reserved keywords in phpunit/tests/file.php#56788
  • Rename parameters that use reserved keywords in phpunit/tests/formatting/sanitizeTextField.php#56788
  • Rename parameters that use reserved keywords in phpunit/tests/formatting/sanitizeTrackbackUrls.php#56788
  • Rename parameters that use reserved keywords in phpunit/tests/functions/deprecated.php#56788
  • Rename parameters that use reserved keywords in phpunit/tests/functions/wpListFilter.php#56788
  • Rename parameters that use reserved keywords in phpunit/tests/functions/wpListPluck.php#56788
  • Rename parameters that use reserved keywords in phpunit/tests/functions/wpListSort.php#56788

Date/Time

  • Prevent errors in current_time() when using timestamp and no value for gmt_offset#57035

Docs

  • Add a missing quote to wp_is_large_network() Docblockdocblock (phpdoc, xref, inline docs) params – #57468, #56792
  • Align spelling with American English – #56811, #56792
  • Align spelling with American English – #56811, #56792
  • Align spelling with American English – #56811, #56792
  • Correct the type of the $user_id parameter in wp_set_password action – #57436
  • Improve wp_style_add_data() function description – #57466, #56792
  • Remove unused post_modified and post_modified_gmt params from wp_insert_post() docblock – #57473, #56792
  • Typo correction in POP3 class send_cmd() inline docsinline docs (phpdoc, docblock, xref)#57449, #56792
  • Use third-person singular verbs for Script Loader related function descriptions, as per docblocks standards – #56792
  • Various docblock fixes 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 WordPress 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. related functions – #56792

Editor

  • Update packages to unblock lazy-loading issues – #56930

Embeds

  • Update Mixcloud oEmbed URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org to the new domain – #57376

Formatting

  • Improve performance of esc_url()#22951

General

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

  • Correct the documentation for the https_ssl_verify and https_local_ssl_verify filters – #54803
  • Correct the name of a 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. referenced in the docs for wp_redirect() and wp_safe_redirect()#57464
  • Use correct class reference for Requests’ HTTP Proxy in WP_Http::request()#54504

Help/About

  • Improve comments keyboard shortcuts HelpHub links – #56920

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.

  • Initialize WP_Locale array properties – #57427

Menus

  • Compare $menu_item->ID and $menu_item->menu_item_parent as strings and avoid moidifying them. Plugins may change the ID to a string – #57169

Pings/Trackbacks

  • Remove a mention of the “Page” post type from the Discussion 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. box – #57429, #11346

Themes

  • Add opt-in Appearance Tools support for Classic Themes – #57460

Upgrade/Install

  • Revert a temporary conditional for testing the Rollbacks feature project – #56057, #57375, #57386

Users

  • Add an action hook on wp_set_password()#57436

Props

Thanks to the 50 people who contributed to WordPress Core on Trac last week: @sergeybiryukov (16), @jrf (12), @aristath (11), @poena (11), @justinahinon (11), @audrasjb (6), @kebbet (5), @peterwilsoncc (5), @sabernhardt (4), @mukesh27 (3), @azaozz (3), @lanacodes (2), @costdev (2), @ironprogrammer (2), @TobiasBg (1), @johnbillion (1), @schlessera (1), @markjaquith (1), @spacedmonkey (1), @dshanske (1), @danielbachhuber (1), @elifvish (1), @tyxla (1), @hellofromTonya (1), @NekoJonez (1), @dennisatyoast (1), @robinwpdeveloper (1), @wildworks (1), @jeremyfelt (1), @Nick_theGeek (1), @Chouby (1), @afragen (1), @chesio (1), @mamaduka (1), @nitman43 (1), @manojkpatil (1), @ashrafulsarkar (1), @pbiron (1), @matclayton (1), @ayeshrajans (1), @mcaskill (1), @tanner m (1), @triumvirate (1), @rryyaanndd (1), @ianbelanger (1), @mehulkaklotar (1), @Chrystl (1), @manooweb (1), @david.binda (1), and @virgar (1).

Congrats and welcome to our 6 new contributors of the week: @lanacodes, @nitman43, @manojkpatil, @matclayton, @triumvirate, @Chrystl ♥️

Core committers: @audrasjb (21), @sergeybiryukov (16), @flixos90 (2), @johnbillion (2), @azaozz (1), @hellofromtonya (1).

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

Performance team meeting summary 20 September 2022

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

Announcements

Focus group updates

Images

@adamsilverstein @mikeschroder

GitHub project

  • @adamsilverstein: WebP feature was reverted following Matt’s post. Still trying to determine what a canonical 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 is and if it would work for WebP by default. Still have some fixes to land for 6.1 around image quality when WebPs are output via Performance Lab plugin.
  • @spacedmonkey: Next steps for Dominant color feature
    • We’ve run out of time to merge before 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 cutoff
    • Feedback process was a lot slower than we thought it would be
    • Should continue to work on this and try to get it in for 6.2
    • @pbearne: Version with theme flag could be merged
    • @spacedmonkey: Merging now doesn’t feel great as there are still unanswered questions. Code is ready, but not sure what feedback will push this across the line. May need to push early in 6.2 cycle and see what happens.
    • @flixos90: Feels like another merge proposal post with a concrete timeline on a merge date could be good to put out right after 6.1, so people can provide any additional feedback. Should also note the new theme support flag approach.

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

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/.
  • @mxbclang: #56040 and #56041 (two Site Health checks from Performance Lab) have been merged for 6.1 and dev notes are in progress
  • @mukesh27: PR #543 for adding can-load.php to these Health Checks is ready for review

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
  • @mxbclang: Reminder about the performance testing environment work started back in March: https://make.wordpress.org/core/2022/03/22/performance-team-meeting-summary-22-march-2022/. This has stalled out since then; if anyone is interested in picking it back up, let us know.
  • @flixos90: Working on a proposal to integrate the Server Timing API into Performance Lab. We have a lack of awareness for how WP is performing server-side and this simple piece of infrastructure would allow us to measure specific features/modules of the plugin to see who they are affecting PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher performance. Should an open an issue this week or next.
  • @mehulkaklotar: Continuing to work on a proposal for the plugin performance checker tool

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

Feedback requested

Discussion: Module proposal: Optimized autoloaded options

@markjaquith

  • Options are autoloaded by default, and most options stay autoloaded even after the plugin or theme that uses them has been deactivated
  • This autoloading has a cost in terms of the performance of the query that loads autoloaded options, and also because the values of these options are kept in memory
  • Discussed a lot of ways of addressing this 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, and the most promising path that would have the most benefit for the most users (and fits in with this group’s philosophy on focusing on automated fixes instead of introducing new APIs) is to dynamically move options in and out of the “autoload” pool based on usage
  • Options that are used *and* are not past a certain size cutoff should be autoloaded, but large options and options that are not used, should not be autoloaded
  • Proof of concept is linked in the ticketticket Created for both bug reports and feature development on the bug tracker. and we’re looking for additional feedback
  • @pbearne already brought up the issue of options that are queried BEFORE a module could start “listening” for them to be called, but there are undoubtedly other gotchas and opportunities here
  • Especially useful would be help in developing a strategy for measuring the performance of this fix for various sizes of autoloaded options
    • @flixos90: Could leverage the Server Timing 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. (noted above) to measure the time the autoloaded options query takes, for example
  • @pbearne: Think that both @markjaquith‘s and my fixes can be used as they work best for different configurations
  • @spacedmonkey: Could we start adding a limit to the number of autoloaded options, say 250 rows? Or is the issue size in terms of memory?
    • @pbearne: If we can load just what we need, the SQL time is less
    • @markjaquith: We do this to avoid hundreds of individual queries
  • @rickjames: Is “autoloading” the thing that PHP can do for include files? I thought it was so slow as to be better to always include everything
    • @markjaquith: No, this is about quering the wp_options table for autoload = 'yes'
  • @rickjames: That gets to the lack of adequate indexes for the wp_options table; a simple change can speed up SELECTs
    • @markjaquith: There’s already an index, it’s more about the volume of data being transferred
  • @eugenemanuilov: Think we should move from defining which option is autoload-able in the database table to the option registration in WP, so a plugin/theme owner will need to register an option similarly to how settings are registered with register_setting and define whether an option is autoload-able there
  • @flixos90: Both proposals at a high level have the idea of querying what is needed, but the newer proposal does it globally while still keeping a single place of storage while the latter was aimed at having different “options lists” per template/page. The latter would be great, but it comes with heavy storage implications, so the newer proposal is probably the best place to start since it has no additional storage implications.
  • @markjaquith: Do think that the issue is data, not rows – evicting autoloaded options could help wtih both
  • @rmccue: Have run into performance problems with pulling autoloaded options from object cache, so agreed that this is an issue
  • @markjaquith: Also issue with memcache’s default config being size-limited
  • @spacedmonkey: Could we use register_settings to define if an option should be autoloaded?
  • @rmccue: CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. problem is that autoload is true by default, which is what causes issues
  • @markjaquith: Two approaches – @pbearne optimized for “literally just what this page needs”; my POC was for “never autoload things that aren’t used”
  • @spacedmonkey: So will we store an array of used options in options table?
    • @markjaquith: Current implementation only stores timestamp of last calibration, but with some additional storage we could minimize dynamic re-adding of autoloaded options
  • @rmccue: Autoloading options should minimize DB/cache calls, but not necessarily replace them. The heuristic of what should be autoloaded is key to this proposal.
    • @markjaquith: To me, it’s “things that are used and aren’t unreasonably large.” Can also honor autoload='no' while not honoring autoload='yes' as chosen by developers.
  • @spacedmonkey: Don’t love the idea of storing an array of keys. How do you generate the array? What is the average page load?
  • @rmccue: To move forward, we need a concrete proposal for how the heuristic works. Will look into the networknetwork (versus site, blog) saturation problems we’ve run into get an idea of what “unreasonable” might lok like.
  • Next steps: @markjaquith will work on detailing the heuristic further in #526 and when it’s ready, we’ll schedule another discussion for a future chat

Our next chat will be held on Tuesday, September 27, 2022 at 11am EDT in the #core-performance channel in Slack.

#core-js, #core-media, #performance, #performance-chat, #summary, #hosting-community

#meta

A Week in Core – September 19, 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 September 12 and September 19, 2022.

  • 94 commits
  • 139 contributors
  • 53 tickets created
  • 2 tickets reopened
  • 71 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 new get_views_links method to WP_List_Table#42066

Build/Test Tools

  • Move the basic get_block_templates() test to the dedicated file – #55652
  • Rename the test for pre_option 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. to match the filter name – #37930
  • Rename the test for wp_guess_url() to match the function name – #36827
  • Replace the timezone used in date/time tests – #56468
  • Reset timezone-related options if the tests change them – #56468#55388
  • Simplify the data provider for testing whether KSES globals are defined – #55652
  • Update the test for respecting the post type in get_block_templates()#55881

Bundled Themes

  • Fifteen: Ensure border-bottom styles are applied to the 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.#55006, #55824
  • Nineteen: Define underline thickness for links – #45925
  • Seventeen: Ensure long text wraps correctly in the Button Block – #55783
  • Twenty-One: Add a missing HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. comment for CustomizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. notice control – #55725
  • Twenty-One: Fix Heading Block alignment when nested in Cover Block – #56050
  • Twenty-One: Remove WooCommerce related CSSCSS Cascading Style Sheets. selectors – #56366
  • Twenty-Two: Add “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) Ready” 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.) to theme in repository – #55172
  • Twenty: Correctly align Social Icons block in the editor – #55987
  • Twenty: Ensure Latest Posts block set to 2 columns displays accordingly in the Editor – #56175
  • Twenty: Ensure headings styles are consistent between editor and front-en – #56194
  • Twenty: Ensure link color is inherited from paragraph in the editor – #56214
  • Twenty: Fix Heading Block alignment when nested in Cover Block – #56049
  • Twenty: Fix Social Links 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. alignment – #56474
  • Twenty: Improve support for Post Title block alignment – #56167

Code Modernization

  • Add AllowDynamicProperties attribute to all (parent) classes – #56513, #56034
  • Fix autovivification from false to array in WP_Scripts::localize()#55656
  • Pass correct value to parse_url() in WP_Customize_Manager::get_return_url()#55656
  • Reduce CSS float usage in wp-adminadmin (and super admin) – Timezone settings – #55557
  • Remove -webkit-appearance CSS declarations – #38431
  • Replace deprecated string interpolation patterns – #55787

Coding Standards

  • Move WP_List_Table::get_views_links() to a more appropriate place – #42066
  • Remove unwanted spaces in the WP_Block_Type class
  • Replace double quote with single quote in test_if_failed_update()#55758
  • Various alignment fixes from composer format#39210, #55443, #56288, #56092, #56408, #56467, #55881

Comments

  • Make wp_required_field_indicator() and wp_required_field_message() output filterable – #56389, #54394
  • Remove aria-hidden="true" attribute for visible text in comment template – #55717

Docs

  • Add missing @since history in Gallery ShortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site. function – #56206, #55646
  • Clarify documentation for the nav_menu_item_id filter – #56574, #55646
  • Clarify that get_page_template() doesn’t work on block themes – #56394, #55646
  • Clarify the $allowed_protocols default value in various KSES functions – #56580
  • Correct @return type for WP_Block_Parser::parse()#56581
  • Correct @return value for wp_get_http_headers()#54225, #55646
  • Correct @since tags for some block parser properties and methods – #56581
  • Correct the wording in wp_lostpassword_url() description – #55646
  • Revert the WP_Block_Parser documentation changes now – #56581
  • Typo correction in _load_textdomain_just_in_time() docblockdocblock (phpdoc, xref, inline docs)#55646
  • Update wp_rand docblock to clarify that it returns a non-negative number – #15089
  • Use third-person singular verbs in Media 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. function descriptions, as per docblocks standards – #55646
  • Use third-person singular verbs in Template Loading functions descriptions, as per docblocks standards – #55646

Editor

  • Add new render property in block.json for block types – #53148
  • Allow registering multiple items for all supported asset types – #56408
  • 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. Style Engine API functions, classes and tests – #56467
  • Backport build_query_vars_from_query_block changes 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/ repository – #56467
  • Backport wp_theme_element_class_name() alias – #56467
  • Backport block supports (border, color, elements, spacing) from Gutenberg to WP 6.1 – #56467
  • Backport block supports filter callback, registrations and tests to 6.1 – #56467
  • Backport foundation for Layout block support refactor (part 1) – #56467
  • Backport foundation for Layout block support refactor (part 1) – #56467
  • Finalize the theme_json_get_style_nodes hook name – #56467
  • Fix function name case in wp_default_packages_inline_scripts()#56467
  • Fix get_block_templates() to get templates for a post type – #55881
  • Fix text zoom on link popup editor – #53174
  • Hide 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. pagination link arrows from assistive technologyAssistive technology Assistive technology is an umbrella term that includes assistive, adaptive, and rehabilitative devices for people with disabilities and also includes the process used in selecting, locating, and using them. Assistive technology promotes greater independence by enabling people to perform tasks that they were formerly unable to accomplish, or had great difficulty accomplishing, by providing enhancements to, or changing methods of interacting with, the technology needed to accomplish such tasks. https://en.wikipedia.org/wiki/Assistive_technology#56067
  • Persist preferences in user 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.#56467
  • Revert [54159] – #56467

External Libraries

  • Update the jQuery UIUI User interface library to version 1.13.2 – #56239
  • Update the jQuery library to version 3.6.1 – #56451

Feeds

  • Add a set of fine-grained filters to disable the different types of feed links separately – #55904

General

  • Add a new filter for the_posts_pagination_args#53392
  • Correct path replacement regex in wp_guess_url#36827
  • Ensure admin notices are properly displayed on Site Health layout – #54624
  • Pass $action to nonce_life filter – #35188
  • Replace Codex links with their HelpHub counterparts – My Sites screen – #48987
  • Replace Codex with HelpHub in WordPress readme – #48987

Help/About

  • Make translator comments version agnostic and make version translatable on the About page – #54741
  • Remove .hidden class when the Help Tab panel is displayed – #27697

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.

  • Remove code tags from translatable strings in WP_List_Table::get_views_links()#42066

Login and Registration

  • Access improvements to networknetwork (versus site, blog) signup – #40361
  • Required fields in network registration – #54344

Options, Meta APIs

  • Add a new pre-option filter – #37930

Plugins

  • Visually align 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 cards in Plugin Install screen – #55721, #55272

Posts, Post Types

  • Improve performance of the get_user_data_from_wp_global_styles method – #55392
  • Update new wp_post_class_taxonomies filter name for consistency – #37114

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 support for settings to specify their own additionalProperties – #56493

Role/Capability

  • Add a new update_role function – #54572

Site Health

  • Adjust margins for the Site Health dashboard widget – #56369
  • Improve the description for Authorization 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. checks – #54508
  • Improve the details provided by the REST API checks – #54617
  • Add a check to wp_check_php_version() whether the current PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher version is lower than the next (desired) minimum version, Set the next desired minimum PHP version to 7.2, Use that check to update the warnings in the wp_dashboard_php_nag() widget, and on the Site Health screen – #56199
  • Add a menu bubble with the critical issues count to the Tools -> Site Health submenu – #56199

Text Changes

  • Remove self-reference (“we”) in WordPress Admin – #55758, #46057

Themes

  • Implement file description for theme.json#55325
  • Introduces block-based template parts for Classic themes – #56467

Upgrade/Install

  • Add plugin URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org to the automatic update email – #53049
  • Remove _copy_dir() function as originally intended – #55712, #17173
  • Update sodium_compat to v1.18.0 – #56564

Props

Thanks to the 139 (!!) people who contributed to WordPress Core on Trac last week: @audrasjb (29), @costdev (25), @sabernhardt (18), @SergeyBiryukov (15), @bernhard-reiter (10), @mukesh27 (10), @jrf (8), @hellofromTonya (6), @peterwilsoncc (6), @Clorith (5), @joedolson (5), @aristath (4), @desrosj (4), @kajalgohel (4), @afercia (4), @poena (4), @kebbet (4), @tahmidulkarim (3), @joyously (3), @spacedmonkey (3), @zieladam (3), @ramonopoly (3), @andrewserong (3), @multidots1896 (3), @robinwpdeveloper (3), @scruffian (2), @isabel_brison (2), @aaronrobertshaw (2), @noisysocks (2), @mamaduka (2), @netweb (2), @neychok (2), @umesh84 (2), @mrfoxtalbot (2), @Chouby (2), @webcommsat (2), @smit08 (2), @fabiankaegy (2), @ironprogrammer (2), @azaozz (2), @ocean90 (2), @antonvlasenko (2), @NomNom99 (2), @dd32 (2), @Presskopp (2), @pbiron (2), @luisherranz (1), @juliemoynat (1), @harshvaishnav (1), @ayeshrajans (1), @markjaquith (1), @knutsp (1), @welcher (1), @grandeljay (1), @bhrugesh12 (1), @annezazu (1), @mikeschroder (1), @ryokuhi (1), @utz119 (1), @kjellr (1), @bph (1), @matveb (1), @kamig478 (1), @lopo (1), @robertghetau (1), @NathanAtmoz (1), @voldemortensen (1), @jdgrimes (1), @curdin (1), @petitphp (1), @flixos90 (1), @jamesckemp (1), @paragoninitiativeenterprises (1), @nidhidhandhukiya (1), @kmadhak (1), @kapilpaul (1), @pbearne (1), @timothyblynjacobs (1), @dlh (1), @afragen (1), @devtanbir (1), @mhkuu (1), @TobiasBg (1), @cfinke (1), @sharjeelkhanvmi (1), @chaton666 (1), @davidbaumwald (1), @JosVelasco (1), @tobiasbg (1), @mxbclang (1), @dingo_d (1), @rafiahmedd (1), @wparslan (1), @monolithon (1), @glendaviesnz (1), @Ipstenu (1), @ChrisHardie (1), @oliverstapelfeldt (1), @maksimkuzmin (1), @henrywright (1), @gziolo (1), @juhise (1), @Dharm1025 (1), @garrett-eclipse (1), @jonny-s (1), @jorbin (1), @DrewAPicture (1), @dwainm (1), @giuseppemazzapica (1), @marybaum (1), @johnjamesjacoby (1), @SteelWagstaff (1), @allisonplus (1), @maartenj (1), @haritpanchal (1), @danfarrow (1), @allancole (1), @bengreeley (1), @cbravobernal (1), @ntsekouras (1), @manfcarlo (1), @helen (1), @grabmedia (1), @dilipbheda (1), @armondal (1), @youknowriad (1), @hakre (1), @talldanwp (1), @oandregal (1), @aljullu (1), @andregal (1), @adamsilverstein (1), @rolfsiebers (1), @celloexpressions (1), @laurent22777 (1), @tobifjellner (1), @jeremyfelt (1), @westi (1), and @annabansaghi (1).

Congrats and welcome to our 18 (!!) new contributors of the week: @tahmidulkarim, @harshvaishnav, @jamesckemp, @kmadhak, @devtanbir, @mhkuu, @sharjeelkhanvmi, @monolithon, @oliverstapelfeldt, @maksimkuzmin, @jonnys, @dwainm, @giuseppemazzapica, @allisonplus, @maartenj, @grabmedia, @armondal, @laurent22777 ♥️

Core committers: @audrasjb (40), @sergeybiryukov (24), @davidbaumwald (9), @hellofromtonya (5), @joedolson (3), @desrosj (3), @clorith (3), @gziolo (3), @azaozz (2), @spacedmonkey (1), @timothyblynjacobs (1).

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