Dev Chat Summary, June 14, 2023

The notes from the weekly WordPress developers chat which took place on June 14, 2023 at 20:00 UTC in the core channel of Make WordPress Slack.

Key links

Announcements

A proposal is ready and will be published soon on setting the criteria for removing “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. support” from each PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8+ version. It includes seeing the criteria in action for WordPress 6.3 which could possibly mean removing “beta support” label from PHP 8.0 and 8.1 – maybe. @hellofromtonya: it is just waiting for one additional contributors.

What’s new in Gutenberg 16.0. This latest 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 release has a preview of many editor enhancements and features in store for WordPress 6.3.

Highlighted posts

A Week in Core – June 12, 2023 – courtesy of @audrasjb. Seven new contributors last week on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress..
Changes on Trac between June 5 and June 12, 2023:

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

20 years of WordPress at WordCamp Europe. This summary of WCEU 2023 touches on high points from the event and two highlight videos.


Updates on forthcoming releases

Beta 1 for the 6.3 release will be on Tuesday June 27, 2023

WordPress 6.3 will be 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.. Stay in the loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. by checking out:

Tickets/ Component maintainers blockers/ updates

Tickets relating to 6.3 were prioritized.

@joemcgill raised a potential concern about ticketticket Created for both bug reports and feature development on the bug tracker. #12009. Full discussion starts at this Slack thread.

A Performance Team’s priority for the 6.3 release is to enhance the APIs for script registration to support async and defer attributes. After initial implementation, a final decision is needed about support for inline scripts. Urgent action: more views requested from someone familiar with this 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. in the next few days.

Open floor

a) 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. Europe Contributor DayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/. coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. tables updates

During Contributor Day, these were the core numbers from Trac:

  • 14 tickets created (Trac only)
  • 181 ticket updates
  • 68 unique tickets updated.
  • 4 change commits
  • 13 new GH pull requests
  • 15 patches uploaded.

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/ specific numbers during Contributor Day are being collated.

A big thanks to all involved in Contributor Day, those attending especially first-time contributors. Special thanks to @desrosj, @sergeybiryukov, @oglekler, @webcommsat and everyone else who helped on the day and with preparation, and those who assisted with setting up local environments and encouraging new contributors.

Thank you to @jorbin @swissspidy @ocean90 and @joedolson for getting some attendee contributions committed during the event as well!

Are you interested in helping draft Dev Chat summaries? Volunteer at the start of the next meeting on the #core Slack channel.

Props to @webcommsat and @ironprogrammer for items relating to this meeting.

#6-3, #dev-chat, #summary

A Week in Core – June 12, 2023

Welcome back to a new issue of Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between June 5 and June 12, 2023.

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

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers are based on the Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.

Code changes

Administration

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

Bootstrap/Load

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

Bundled Themes

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

Coding Standards

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

Docs

  • Fix a few more typos in Docblocks – #58338, #57840
  • Improve various docblockdocblock (phpdoc, xref, inline docs) in WP_Query class, as per docblock standards – #57840
  • Mark apply_filters() third parameter $args as optional – #58481, #57840
  • Various docblock improvements in Custom HeaderHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. Image related functions, as per docblocks standards – #57840

Editor

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

Embeds

  • Add support for TikTok creator profiles – #55784

External Libraries

  • Update jQuery Migrate to version 3.4.1 – #58451

I18Ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.

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

Login and Registration

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

Media

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

Networks and Sites

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

Plugins

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

Query

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

Script Loader

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

Themes

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

Upgrade/Install

  • Improve WP_Upgrader strings rendering on small screens – #58477

Users

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

XML-RPC

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

Props

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

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

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

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

Two Weeks in Core – June 5, 2023

Welcome back to a new issue of Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between May 22 and June 5, 2023. Sorry for not being able to publish a post last week, this one will cover two weeks!

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

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers are based on the Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.

Code changes

Bundled Themes

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

Coding Standards

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

Comments

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

Cron APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.

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

Docs

  • Add a @since tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) for the pre_wp_setup_nav_menu_item filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.#56577
  • Miscellaneous corrections and improvements to docblocks – #57840
  • Various docblockdocblock (phpdoc, xref, inline docs) improvements in Custom HeaderHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. Image related functions, as per docblocks standards – #57840

Editor

  • Use register_block_type_from_metadata in register_core_block_types_from_metadata – #58342

Emoji

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

Editor

External Libraries

  • Update jQuery to version 3.7.0 – #58083

Formatting

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

General

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

Help/About

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

I18Ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.

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

Media

  • Conditionally skip lazy-loading on images before the loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. to improve LCP performance – #58211, #53675, #56930
  • Correct the fallback value passed to the $mimes parameter of wp_check_filetype_and_ext() from _wp_handle_upload(), and update corresponding documentation – #58349
  • Fix lazy-loading bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. by avoiding to modify content images when creating an excerptExcerpt An excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin’s metabox.#56588
  • Prevent scaling up of images in the Image Editor – #26381

Menus

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

Options, MetaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. APIs

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

Themes

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

Upgrade/Install

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

Users

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

Props

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

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

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

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

A Week in Core – May 22, 2023

Welcome back to a new issue of Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between May 8 and May 22, 2023 (sorry for not being able to publish a post last week, this one will cover two weeks!).

  • 48 commits
  • 87 contributors
  • 108 tickets created
  • 10 tickets reopened
  • 79 tickets closed

Also, WordPress 6.2.1 and 6.2.2 maintenance and security releases went out!

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 missing escaping for CSSCSS Cascading Style Sheets. classes on the body 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.) in the adminadmin (and super admin)#58336

Build/Test Tools

  • Call wp_cache_flush_runtime in WP_UnitTestCase. – #31463
  • Move wp_cache_flush_runtime() next to wp_cache_flush()#57841
  • Partial revert of r55745 – #57841
  • Remove expectation of a deprecation notice from WP_Posts_List_Table tests – #58157
  • Split the tests from user/author.php into individual test classes – #57841
  • Use the function get_num_queries across all unit tests – #57841

Code Modernization

  • Correct fallback return value in get_the_author()#58157
  • Explicitly declare all properties in Text_Diff_Engine_native#58298

Coding Standards

  • Use esc_url() to escape link URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org value in wp-admin/edit-link-form.php#58282

Comments

  • Always lazily load comment 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.#57801

Docs

  • A host of corrections and improvements to inline documentation – #57840
  • Clarify @param types on get_sample_permalink_html 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.#58322
  • Correct default value for the $optimize option in Style Engine – #57840
  • Fix a few more typos in DocBlocks – #57840
  • Fix a few more typos in DocBlocks and inline comments – #57840
  • Fix a few more typos in inline comments – #58334, #57840
  • Fix typo in a comment in Bulk_Upgrader_Skin::header() and ::footer()#58334
  • Improve 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. file and class headers per the documentation standards – #57840
  • Improve Style Engine DocBlocks per the documentation standards – #57840
  • Improve Style Engine file and class headers per the documentation standards – #57840
  • Improve a few DocBlocks in wp-includes/formatting.php#58316
  • Update code examples formatting in WP_HTML_Tag_Processor documentation – #58028
  • Various corrections and improvements to inline docsinline docs (phpdoc, docblock, xref) and docblocks – #57840
  • describe return type of _get_block_template_file()#57756

Editor

  • Disable lazy loading term meta in get_block_templates#58230
  • Ensure 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. comments are of a valid form
  • Remove 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. support from block templates
  • Restore shortcode support for block templates – #58333
  • Update block editor packages to the latest patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. releases – #58274

Embeds

  • Add protocol validation for WordPress Embed code

General

  • Remove a few is_object() checks followed by instanceof operator – #58309
  • Use static on closures whenever $this is not used to avoid memory leaks – #58323

Help/About

  • Remove unwanted space in a link located on about.php#58373

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.

  • Introduce sanitization function for localeLocale A locale is a combination of language and regional dialect. Usually locales correspond to countries, as is the case with Portuguese (Portugal) and Portuguese (Brazil). Other examples of locales include Canadian English and U.S. English.
  • Replace “Roll back” with “Restore” in user facing strings – #58282

Media

  • Conditionally skip lazy-loading on images before the loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. to improve LCP performance – #58211
  • Increase default for wp_omit_loading_attr_threshold to 3 – #58213
  • Introduce wp_get_attachment_image_context filter – #58212
  • Prevent CSRF setting attachment thumbnails
  • Prevent special images within post content to skew image counts and cause lazy-loading bugs – #58089

Networks and Sites

  • Lazy load site meta – #58185
  • Load WP_Metadata_Lazyloader class file if class does not exist – #58185
  • Load WP_Metadata_Lazyloader class file if class in meta.php – #58185

Plugins

  • Remove is_object() check in WP_Hook:build_preinitialized_hooks()#58290

Posts, Post Types

  • Add a new filter for query arguments in get_pages#12821

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.

  • Add edit link functionality for the wp_template and wp_template_part post types – #57709

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.

  • Do not prime term meta in wp_get_object_terms#57701

Props

Thanks to the 87 people who contributed to WordPress Core on Trac last week: @spacedmonkey (15), @peterwilsoncc (10), @costdev (10), @mukesh27 (9), @xknown (6), @flixos90 (6), @sergeybiryukov (5), @westonruter (5), @johnbillion (5), @thekt12 (4), @audrasjb (4), @youknowriad (4), @jrf (4), @davidbaumwald (3), @timothyblynjacobs (3), @isabel_brison (3), @dd32 (3), @antpb (3), @Presskopp (3), @talldanwp (2), @andraganescu (2), @ntsekouras (2), @ocean90 (2), @NekoJonez (2), @oandregal (2), @matveb (2), @rmccue (2), @desrosj (2), @aristath (1), @johnjamesjacoby (1), @antonvlasenko (1), @ramonopoly (1), @ironprogrammer (1), @annezazu (1), @wonderboymusic (1), @boonebgorges (1), @voldemortensen (1), @DrewAPicture (1), @tillkruess (1), @mamaduka (1), @wildworks (1), @mdxfr (1), @hellofromtonya (1), @kebbet (1), @mattwiebe (1), @bph (1), @ndiego (1), @joen (1), @ellatrix (1), @kevin940726 (1), @andrewserong (1), @welcher (1), @juanmaguitar (1), @coffee2code (1), @azaozz (1), @bor0 (1), @thomask (1), @dilipbheda (1), @marianne38 (1), @mikeschroder (1), @ehtis (1), @jorbin (1), @gziolo (1), @chriscct7 (1), @Otto42 (1), @ryelle (1), @joedolson (1), @Clorith (1), @kamplugins (1), @afragen (1), @apermo (1), @kenwins (1), @noisysocks (1), @zunaid321 (1), @martinkrcho (1), @paulkevan (1), @ahsannayem (1), @rutviksavsani (1), @Enchiridion (1), @sumitbagthariya16 (1), @Soean (1), @sabernhardt (1), @salvoaranzulla (1), @ebai4 (1), @sajjad67 (1), @tijmensmit (1), and @dmsnell (1).

Congrats and welcome to our 5 new contributors of the week: @marianne38, @ahsannayem, @rutviksavsani, @ebai4, @tijmensmit ♥️

Core committers: @sergeybiryukov (17), @audrasjb (10), @spacedmonkey (9), @flixos90 (4), @johnbillion (2), @desrosj (1), @westonruter (1), @oandregal (1), and @davidbaumwald (1).

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

What’s new in Gutenberg 15.8? (May 17)

What’s new in 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/…” posts (labeled with the #gutenberg-new tag)  are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Site Editor project (formerly called Full Site Editing)

Gutenberg 15.8  has been released and is available for download!

For the latest release of the Gutenberg 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, contributors continued improvements to existing UIUI User interface and UXUX User experience for content creators, site owners working on their own site, or theme developers creating new themes. Users will find small changes for streamlined workflows, fixed bugs, and refined responsiveness, just to name a few. The release includes 192 PRs by 63 contributors, of which 4 merged their first contributions. Congratulations to all.

Table of contents

  1. Add the pages menu to the site editor
  2. Add revisions UI to the global styles interface
  3. Add Theme Previews for block themes
  4. Changelog

Add the pages menu to the site editor

The site editor now exposes the ten most recently updated pages so you can directly jump into editing them. This is another step to explore adding back the ability to edit content right from within the site editor. (50463)

Add revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. UI to the global styles interface

In the global styles interface, you can now navigate through any revisions and browse how the site looked at that point in time. Any saved changes get shown in a timeline with when they occurred and who made the changes. (50089)

Add Theme Previews for blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. themes

Previewing different themes has never been easier. By introducing a new theme_preview parameter, previewing how your site would look with a different theme right inside the site editor is now possible. (50030)

Changelog

Enhancements

Global Styles

  • Fluid typography: Use layout.wideSize as max viewport width. (49815)
  • Global styles revisions: Remove human time diff and custom author fields from the 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. response. (50234)
  • Unify the global block styles panel with the block inspector panels. (49428)

Post Editor

  • Add <ViewLink> component. (50260)
  • Update background color of post editor when viewing mobile or tablet viewports, or in template mode. (50361)
  • Display device icon on “preview” and “view” buttons. (50218)
  • Improve “switch to draft” placement. (50217)
  • Post Featured ImageFeatured image A featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts.: New design for Replace and Remove buttons. (50269)

Block Library

  • More intuitive Details block with summary and innerBlocks content. (49808)
  • Simplify cover block description. (50355)
  • Cover: Only show overlay controls when color support enabled. (50115)
  • Navigation: Hide color controls when color support is disabled. (50368)
  • Post Featured Image: Hide overlay controls when color support is disabled. (50331)
  • Social Icons: Hide color controls when color support is disabled. (50275)

Fonts API

  • Separate BC Layer. (50077)

Site Editor

  • Add the pages menu to the site editor. (50463)
  • Introduce new PluginTemplateSettingPanel slot. (50257)
  • Add chevrons to the templates and template parts in site editor. (50076)

Components

  • Button: Add opt-in prop for next 40px default size. (50254)
  • Consolidate and add documentation to Storybook. (50226)
  • DimensionControl: Use WordPress package instead of reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. in code example. (50435)
  • FormTokenField, ComboboxControl: Add opt-in prop for next 40px default size. (50261)
  • Global Styles: Fix palette color popovers. (49975)
  • Relax link pattern matching in CHANGELOG CI check. (50248)
  • Remove custom padding for tertiary buttons. (50276)
  • Update Autocomplete usage example. (49965)
  • Update default accent color. (50193)
  • Update has-text has-icon button spacing. (50277)

CSSCSS Cascading Style Sheets. & Styling

  • Polish confirm dialog padding. (50283)

Template Editor

  • Remove start blank option in template pattern suggestions and add skip button. (50099)
  • Templates: Sort by the rendered title instead of the slug. (50353)

Block Editor

  • List View: Allow dragging to all levels of the block hierarchy. (49742)
  • Allow dragging-and-dropping images from the inserter to image blocks. (49673)
  • Try always showing the dimensions controls. (50305)
  • Adds a renderAdditionalBlockUI prop to ListView. (50465)
  • Update the expanded text color so that it works in both a dark and light context. (50434)
  • Enable Loginout block in Nav block. (49160)
  • Mark related selector as resolved when sideloading Navigation fallback. (50324)
  • Update Template Parts icon to use the symbol. (50410)
  • Use CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Data for Nav fallbacks and side load resulting entity into state. (50032)
  • Tweak copy for block settings menu “Insert…” to “Add…”. (50444)
  • Block settings menu: Rearrange items. (50453)

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

  • Update image editor to use new REST API. (28530)

Bug Fixes

Block Library

  • Center align button text in editor. (50228)
  • Comment Template Block: Set commentId context via 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.. (50279)
  • Cover: Use overflow: clip, falling back to overflow: Hidden to allow sticky children (technically). (50237)
  • Ensure imported Classic Menu dirty state to include in Editor entity changes list. (50318)
  • File Block: Defer hiding PDF embeds for unsupported browsers until the page has loaded. (50113)
  • Fix template part area variation matching. (49500)
  • Fix the pocket casts embed variation. (50132)
  • Gallery: Fix inner block selection. (50363)
  • Post Terms: Use publicly_queryable to query taxonomies used to register variations. (50244)
  • Remove extraneous “Link” copy from PanelBody components. (50186)
  • Remove Quote transform from Group (50424)
  • [Post Featured Image]: Revert maxWidth addition. (50427)
  • [Post Title]: Insert default block on Enter at end. (50312)
  • Ensure that view scripts are correctly registered for core blocks. (50364)

Global Styles

  • Close stylebook if the editor canvas container slot is not filled. (50086)
  • Fix positioning of gradient palette popovers on mobile. (50233)
  • Fix/wp get global styles for custom props returns internal variable. (50366)
  • Revisions controller: Fix author and date fields. (50117)
  • Fix hover/focus styles for style variation buttons. (50056)

Block Editor

  • Fix issue with margin collapsing when selecting blocks. (50215)
  • List View / Block Draggable: Fix scroll to top issue when dragging the second last block in the list. (50119)
  • Multi-select: Capitalise B in blocks. (50356)
  • URLInput: Update the ‘ENTER’ key down event handler. (50158)
  • Update OffCanvas component’s more menu to get clientId from block rather than passed in as prop. (50473)
  • Block Toolbar: Don’t use effects for focus management. (50497)
  • Don’t remount the block when the ‘templateLock’ is set to ‘contentOnly’. (50292)

Themes

  • Refactor theme previews. (50338)
  • Remove gutenberg plugin mention in schema. (50207)
  • Theme Preview: Restrict to adminadmin (and super admin) users. (50335)
  • Theme Previews: Fix refactor. (50354)

Site Editor

  • Display conditionally the styles in sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. main navigation screen. (50329)
  • Remove canvas box shadow. (50374)
  • Save Button: Fix the label in the disabled state. (50284)
  • Remove white background on Site Editor ‘Frame’. (48970)
  • Update some visual details in the add-template modal(s). (50143)

Components

  • Spacing: Fix reset of spacing sizes control. (50455)
  • NavigableContailer: Do not trap focus in TabbableContainer. (49846)
  • Remove fill=”none” from levelUp icon. (50264)

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)

  • Add missing tooltip to Site Editor navigation Back icon button. (50104)
  • Fix Multiple Tooltips from Focus Toolbar Shortcut on 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. Editor. (50344)
  • Site Editor Keyboard Navigation Flow. (50296)
  • Small improvements for the sidebars and Close buttons labeling. (49614)

Design Tools

  • Changed so that borders and radius are maintained when Duotone is changed. (50088)
  • LineHeightControl: Fix application of zero values in editor. (48917)

Fonts API

  • [Font API] Do not print in admin using ‘admin_print_styles’ for themes with 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.. (50259)

Widget Editor

  • Fixes fixed block toolbar in widgets editor. (50371)

Performance

  • Improve Site Editor loading experience(50222)

Experiments

Interactivity API

  • Add Interactivity API runtime. (49994)
  • Navigation block with the Interactivity API. (50041)

Command Center

  • Update the experiment label. (50467)
  • Add an API to open/close the command center. (50423)
  • Fix a style glitch on Safari. (50138)
  • Add a button to open it from the site editor view mode. (50425)
  • Do not show dynamic add new post, add new page commands. (50221)
  • Extract the WordPress reusable commands to a dedicated package. (49956)
  • Fix command menu not re-opening after closing it. (50213)

Documentation

  • Add changelog for eslint-plugin validating dependencies in useSelect and useSuspenseSelect 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.. (50247)
  • Add client-side filter reference to Curating the Editor doc and fix links. (50203)
  • Add missing closing parenthesis in code example. (50253)
  • Adds example to change the permalink structure. (50251)
  • Adds links to REST-API reference. (50070)
  • Create-block script includes link to documentation in render.php file. (50206)
  • Block API > Registration: Switch markdown to a-tags. (50110)
  • Don’t use markdown in the callout section. (50437)
  • Remove mention of perf testing from release documentation. (50345)
  • Update Callout documentation on links. (50131)
  • Fix incorrect label in contributor docs. (50201)
  • Fix minor formatting issues in Performance doc. (50202)
  • Fixes incorrect URLs in doc blocks. (50123)
  • Use alert callout in the block deprecation documentation. (50286)
  • Improve CardMedia documentation. (50074)
  • Update README of TreeGrid with data-expanded attribute usage. (50026)

Code Quality

  • Block Editor: Directly import useShouldContextualToolbarShow hook. (50506)
  • BlockControls, InspectorControls: Remove useSlot, unify behavior on bad group. (50198)
  • Enqueue registered block assets and resolve 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. styles end-to-end failure. (50185)
  • Make eslint-plugin validate dependencies in useSelect and useSuspenseSelect hooks. (49900)
  • Save Hub: Reuse the save button component to save code. (50145)
  • Use apiFetch instead of window.fetch. (50043)
  • Add types to dispatch and select. (49930)
  • Remove duplicate comment. (50304)

Lodash removal

  • Remove from blocks store reducer. (50471)
  • Remove _.mapValues() from getBlockContentSchemaFromTransforms. (50096)
  • Refactor away from _.mapValues(). (50285)
  • Remove _.mapValues() from blocks reducer. (50097)

Components

  • Fix incorrect focus style widths. (50127)
  • Refactor/toolbar item component to typescript. (49190)
  • SlotFill: Several code cleanups. (50098)
  • SlotFill: Some code cleanups of the bubblesVirtually version. (50133)
  • Convert NavigableContainer to TypeScript. (49377)

Block Editor

  • Block Editor: Add names for the ‘editor.BlockListBlock’ filter HoCs. (50513)
  • Refactor around missing dependency in Link Control internal value sync effect. (49509)
  • Don’t export Slot/Fill constants separately. (50274)

Block Library

  • Centralize constants for the navigation block. (50191)
  • Move deprecated Nav block functions to bottom of render file. (50328)
  • Refactor BlockList uses Hooks. (50293)

List View

  • Replace OffCanvasEditor in browse mode with the List View component. (50287)
  • Use block select button class for retaining colors when expanded or hovered. (50155)

Global Styles

  • Global styles revisions: Ensure the revisions endpoint permissions match the global styles controller. (50270)
  • Simplify CustomCSS UI. (49721)

Plugin

  • Update REST API Controller PHPUnit tests. (50120)
  • Update the Gutenberg plugin to require at least the WP 6.1 version. (50079)
  • Update the tested up to version for the gutenberg plugin. (50360)

Native

  • Add a few import required for the React Native wrapper distribution as iOSiOS The operating system used on iPhones and iPads. XCFramework. (50009)

Site Editor

  • Extract the Router APIs and context into a dedicated package. (50100)
  • Move loading logic to a separate hook. (50511)

Tools

wp-env

  • Add wp-env After Setup Command. (50196)
  • Fix wp-env destroy. (50445)
  • Refactored wp-env configuration Parsing. (50071)
  • Wp-env fix exec command in CI. (50411)
  • wp-env: Add better default PHPunit settings, fix Xdebug, and update documentation. (50490)
  • wp-env: Improve run command execution speed. (50007)
  • Cleaned up Port Validation and Removed Unnecessary Default Ports. (50300)
  • Match Container’s User and Group to Host. (49962)

Testing

  • Add end-to-end test for editing the title of a new custom template part. (50195)
  • Add test to verify image appears on frontend. (50472)
  • Add tests coverage for the navigation block frontend interactivity. (50462)
  • Migrate Adding Patterns Test to Playwright. (50083)
  • Migrate Keep Transform Block Test Case to Playwright. (49719)
  • Migrate PullQuote test case to playwright. (50085)
  • Migrate undo to Playwright. (48701)
  • Prerelease end-to-end Test Utils for Playwright. (43998)
  • Skip creating flaky issues on PRs. (50146)
  • end-to-end tests: Try to fix flaky global styles revisions tests. (50454)
  • Add BlockList text coverage. (50252)

Build Tooling

  • Changelog automation: Apply proper top-level categorization precedence to 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. PRs. (50208)
  • Do not include first time contributors section in changelog if there are not any. (50291)
  • Publish rich text build types. (49651)
  • Rich text: Rename index.js > index.ts for type-only exports. (50212)
  • Remove PHPUnit and Composer packages. (50408)

Repository Maintainance

  • Add ndiego as codeowner for docs. (50289)

First time contributors

The following PRs were merged by first time contributors:

  • @johnhooks: feature(data): Add types to dispatch and select. (49930)
  • @margolisj: Refactor/toolbar item component to typescript. (49190)
  • @n2erjo00: Create-block script includes link to documentation in render.php file. (50206)
  • @samnajian: Fix/wp get global styles for custom props returns internal variable. (50366)

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw @afercia @ajlende @alexstine @andrewserong @apeatling @artemiomorales @aurooba @bph @chad1008 @ciampo @DAreRodz @dcalhoun @draganescu @ecgan @fluiddot @fullofcaffeine @geriux @getdave @glendaviesnz @gziolo @hellofromtonya @ironprogrammer @jameskoster @jasmussen @jeryj @jhnstn @johnhooks @jsnajdr @juanfra @kevin940726 @kienstra @Mamaduka @margolisj @mburridge @mirka @mokagio @mtias @n2erjo00 @ndiego @noahtallen @noisysocks @ntsekouras @oandregal @ObliviousHarmony @ocean90 @ockham @pavanpatil1 @pooja-muchandikar @priethor @ramonjd @richtabor @samnajian @SantosGuillamot @scruffian @SiobhyB @t-hamano @talldan @tellthemachines @torounit @tyxla @westonruter @youknowriad


Props to @bph and @jameskoster for their help with this release

#gutenberg, #gutenberg-new

A Week in Core – April 10, 2023

Welcome back to a new issue of Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between April 4 and April 10, 2023.

  • 21 commits
  • 34 contributors
  • 50 tickets created
  • 8 tickets reopened
  • 55 tickets closed

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers are based on the Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.

Code changes

Bundled Themes

  • Twenty Twenty-One: Replace include_once with require_once for required classes – #57839
  • Twenty Twenty-Three: Add style-variations 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.) in style.css#58110

Coding Standards

  • Correct sprintf() calls for messages in wp-admin/upload.php#57839
  • Correct the closing PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher tag placement in some adminadmin (and super admin) files – #58053
  • Replace include_once with require_once for required files – #57839
  • Use strict comparison in wp-admin/users.php#58040
  • Use strict comparison in wp-admin/users.php#58056
  • Use strict comparison where count() is involved – #57839

Comments

  • Add missing arguments for get_comment_time() in comment_time()#58064

Docs

  • Fix a typo in wp-includes/rss.php inline comments – #57467

External Libraries

  • Update the Requests library to version 2.0.6 – #58079

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.

  • Add has_self_closing_flag() to Tag Processor – #58009

Help/About

  • Fix the Support Forums URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org in wp-admin/includes/class-wp-site-health.php#58052, #57726
  • Use the new /documentation/ URLs for links about WordPress version – #58052, #57726
  • Use the new /documentation/ URLs for links about WordPress version – #58052, #57726
  • Use the new /documentation/ URLs in options-permalink.php#58052, #57726

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.

  • Correct translator comments placement in wp-admin/edit-comments.php#57839

Networks and Sites

  • Fix incorrect color for Theme enabling admin notices – #58096

Script Loader

  • Remove unused wp-nux CSSCSS Cascading Style Sheets. dependency – #57827, #57643

Upgrade/Install

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

Props

Thanks to the 34 people who contributed to WordPress Core on Trac last week: @sergeybiryukov (5), @audrasjb (4), @sabernhardt (3), @costdev (2), @wildworks (2), @faisalahammad (2), @afercia (2), @flixos90 (2), @ocean90 (2), @lanacodes (1), @peterwilsoncc (1), @joostdevalk (1), @moinrrahmed (1), @ayeshrajans (1), @jhabdas (1), @Frank-Klein (1), @wtranch (1), @dmsnell (1), @youknowriad (1), @tmatsuur (1), @jrf (1), @johnbillion (1), @ugyensupport (1), @wpfy (1), @chiragrathod103 (1), @dhrumilk (1), @marineevain (1), @kausaralm (1), @poena (1), @aristath (1), @mukesh27 (1), @kafleg (1), @nithins53 (1), and @zieladam (1).

Congrats and welcome to our 3 new contributors of the week: @moinrrahmed, @marineevain, @kausaralm ♥️

Core committers: @sergeybiryukov (10), @audrasjb (9), @peterwilsoncc (1), and @bernhard-reiter (1).

#6-3-2, #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

Preferred Languages: Help test the latest version

Since the last update on the Preferred Languages feature plugin, a lot of work has been accomplished both on the 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 side and in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. to make the solution more robust in a variety of ways. Today, I want to provide a bit more details on these accomplishments, which resulted in the recent release of Preferred Languages 2.0, advancing the project a huge step closer towards a core merge proposal

But first, make sure to check out the previous update:

Improved Stability, Fully Rewritten

Over the last year, a lot of work has gone into making the plugin more stable by adding more tests and fixing bugs. This includes improving compatibility with other plugins and making translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. merging and localeLocale A locale is a combination of language and regional dialect. Usually locales correspond to countries, as is the case with Portuguese (Portugal) and Portuguese (Brazil). Other examples of locales include Canadian English and U.S. English. switching more robust. As a result, pure 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. code coverage is near 100%, with end-to-end tests adding another layer of confidence.

With WordPress adding several 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. improvements in WordPress 6.1 and 6.2, the Preferred Languages plugin is now fully compatible with WP_Textdomain_Registry and switch_to_user_locale(). The minimum required WordPress version has been bumped to 6.1 as a result.

Certainly the biggest change, however, was the full refactoring of the UIUI User interface itself. The whole 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/. portion of the code base was over 6 years old and using jQuery and jQuery UI. But not anymore! The UI has been completely refactored to use ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/., with the same components that also power the blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. editor. In the process, drag & drop sorting functionality was removed to simplify the UI, and 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) has improved, but otherwise everything looks mostly the same.

How to help

So, what’s next? The latest version of the Preferred Languages feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. needs more eyes testing it and providing feedback.

One big remaining question mark is the concept of translation merging. By default, if there are only some missing strings in a selected locale, these would be displayed in English. But with translation merging, the missing strings will be taken from the locale next in line instead. While this works great, it could be a tad slow due to the way translations are loaded in WordPress. Any help addressing this potential performance concern would be greatly appreciated.

Note: The merging feature can be enabled with add_filter( 'preferred_languages_merge_translations', '__return_true' );.

Active development is taking place on GitHub. If you want to get involved, check out the open issues and join the #core-i18n channel on Slack.

Props to @ocean90 for reviewing this post.

#feature-plugins, #feature-projects, #i18n, #polyglots, #preferred-languages

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

  • 45 commits
  • 79 contributors
  • 63 tickets created
  • 12 tickets reopened
  • 61 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

  • Use assertSame() in Tests_Comment::test_update_comment_from_privileged_user_by_privileged_user() – #56800
  • Use assertSame() in WP_Date_Query tests – #56800
  • Add a performance measurement workflow – #57687
  • Add test coverage for the get_posts_navigation() function – #55751
  • Add wp_check_filetype() unit tests – #57151
  • Add unit tests for Gallery blocks – #55571
  • Regenerate correctly the block-json.php file – #57471
  • Add unit tests for get_next_posts_link() and get_previous_posts_link()#55751
  • Adjust the expected mime type for WOFF fonts on PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.1.12+ – #56817
  • Ignore EOL differences in a wpautop() test for <math> 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. elements – #57718
  • Improve Tests_Media::test_wp_generate_attachment_metadata_doesnt_generate_sizes_for_150_square_image() – #56800, #57370
  • Make sure the correct query is tested for term limits in 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. queries – #57342
  • Move some data providers in Tests_Functions next to the tests they are used in – #56793
  • Second pass at merging file-level and class-level DocBlocks in various 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. files – #57723
  • Use assertSame() in Tests_Theme_wpThemeJson – #56800, #57621

Bundled Themes

  • Account for a numeric theme directory in WP_Theme::__construct()#54645
  • Twenty Nineteen: Update PostCSS to version 8.x – #57554
  • Twenty Twenty: Avoid PHP warnings in 8.1 due to incorrect usage of wp_add_inline_style()#57777

Docs

  • Fix erroneous since mention in wp_internal_hosts hook – #57796
  • Fix typo in wp_generate_password() description – #57847
  • Use the new /documentation/ URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org for HelpHub link in readme.html#57726

Editor

  • Correctly merge custom CSSCSS Cascading Style Sheets. into global styles – #57833
  • Deprecate _resolve_home_block_template() – #57716
  • Ensure Global styles values are reset in the site editor – #57824, #56467
  • Exclude non-sticky posts in 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. Block when set to “Only” – #57822
  • Only add layout classes to inner wrapper if block is a container – #55571, #57831
  • Partial revert of r55230#57830, #56852
  • Add ‘path’ query arg to Appearance > Template Parts menu – #57819
  • 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. 4 – #57471

Formatting

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

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 RCData and Script 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.) closers – #57852, #57575

Help/About

  • Avoid extra redirections on HelpHub Links – #57726
  • Improve help text about the WordPress URL and Site URL settings – #50886, #57759
  • Restore the correct URL for Editing Files article on Edit Themes screen – #57726
  • Update the About page for 6.2 – #57477
  • Use a consistent capitalization for “Support forums” links across WP Adminadmin (and super admin)#57726

Media

  • Rename the wp_ajax_save_attachment action hook to wp_ajax_save_attachment_updated#23148
  • Revert the addition of a $size parameter to get_attached_file()#51780
  • improve display of cropped image in media editor – #55070

Script Loader

  • Pass the asset path to the _doing_it_wrong() notice in register_block_script_handle()#53566

Users

  • Adjust the initialization of the $duplicated_keys array in wp_salt()#57121
  • Use a separate variable for the post counts query in wp_list_authors()#57011

Props

Thanks to the 79 people who contributed to WordPress Core on Trac last week: @costdev (13), @mukesh27 (12), @hellofromTonya (8), @sergeybiryukov (8), @peterwilsoncc (7), @audrasjb (7), @Mamaduka (5), @ankitmaru (4), @desrosj (4), @sabernhardt (4), @robinwpdeveloper (3), @sakibmd (3), @youknowriad (3), @flixos90 (3), @ntsekouras (3), @sc0ttkclark (3), @azaozz (2), @simongomes02 (2), @geisthanen (2), @poena (2), @wildworks (2), @johnbillion (2), @richtabor (2), @laurlittle (2), @swissspidy (2), @oandregal (2), @ironprogrammer (2), @isabel_brison (2), @lifeboat (1), @brookedot (1), @Toru (1), @thedaysse (1), @rahmohn (1), @dasnitesh780 (1), @joedolson (1), @fabiankaegy (1), @kevin940726 (1), @adityaarora010196 (1), @jongycastillo (1), @michelmany (1), @joyously (1), @sun (1), @chrisbaltazar (1), @lopo (1), @alvastar (1), @winterpsv (1), @hugodevos (1), @Ankit K Gupta (1), @ignatggeorgiev (1), @markoserb (1), @davidbaumwald (1), @jakariaistauk (1), @gziolo (1), @andy786 (1), @antpb (1), @sanketchodavadiya (1), @antonvlasenko (1), @zieladam (1), @dmsnell (1), @david.binda (1), @adamsilverstein (1), @fuadragib (1), @naeemhaque (1), @seakashdiu (1), @hasanmisbah (1), @mahbubshovan (1), @pbearne (1), @pyrobd (1), @pravinparmar2404 (1), @marybaum (1), @tobifjellner (1), @justinahinon (1), @webcommsat (1), @hellofromtonya (1), @jpantani (1), @RavanH (1), @ocean90 (1), @neychok (1), and @spacedmonkey (1).

Congrats and welcome to our 5 new contributors of the week: @lifeboat, @thedaysse, @dasnitesh780, @markoserb, @andy786 ♥️

Core committers: @sergeybiryukov (15), @hellofromtonya (10), @audrasjb (7), @gziolo (4), @peterwilsoncc (2), @ryelle (2), @adamsilverstein (1), @joemcgill (1), @desrosj (1), @azaozz (1), and @flixos90 (1).

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

I18N Improvements in 6.2

Various internationalization (i18n) improvements are in WordPress 6.2, and this developers note will focus on these.

Make it easier to switch to a user’s localeLocale A locale is a combination of language and regional dialect. Usually locales correspond to countries, as is the case with Portuguese (Portugal) and Portuguese (Brazil). Other examples of locales include Canadian English and U.S. English.

A while back, WordPress 4.7 introduced user admin languages and locale switching. With every user being able to set their preferred locale, it’s crucial to use locale switching to ensure things like emails are sent in that locale. That’s why you would see a lot of code like switch_to_locale( get_user_locale( $user ) ) in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and in plugins.

Not only is this very repetitive, it also causes limitations when used in combination with things like the Preferred Languages feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins., where one would like to fall back to another locale if the desired one is not available.

To improve this, WordPress 6.2 provides a new switch_to_user_locale() function that takes a user ID, grabs the user’s locale and stores the ID in the stack, so that at each moment in time you know whose locale is supposed to be used.

Together with this enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature., the WP_Locale_Switcher class has been updated to 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. both locale and determine_locale with the switched locale. This way, anyone using the determine_locale() function will get the correct locale information when switching is in effect.

Core already makes use of this new function, and plugins and themes are of course encouraged to do so as well.

See #57123 for more information.

wp_get_word_count_type()

In #56698, the locale’s word count type (i.e. whether they count words or characters), has been made part of the WP_Locale class.

Previously, to get that information, plugins and themes had to do something similar as core and use code like _x( 'words', 'Word count type. Do not translate!' ). All such translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. strings in core have already been replaced with the new wp_get_word_count_type() function (which is a wrapper around WP_Locale::get_word_count_type()). So if you have been using those translation strings in your code, you can now switch to this new function too!

Install new translations when editing your profile

Ever since the aforementioned user admin language feature was introduced, users have been able to change their preferred language in the user profile by choosing from the list of already installed languages. New languages could only be installed via the General Settings page.

Starting with WordPress 6.2, you don’t have to go to the settings page anymore if you quickly want to change your user language to a new one—if you have the necessary capabilities to install languages of course, which by default only admins have.

See #38664 for full context.

Screenshot of the profile edit screen, showing the language chooser dropdown where users can now also choose languages that have not yet been installed.
Users with the necessary capabilities can now install new languages via the profile edit screen.

Translator comments for screen reader strings

In r55276 / #29748, all translatable strings intended for screen readers have been marked as such via translator comments.

This aims to provide better context for translators and make it easier to determine that some strings contain hidden 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) text and are not displayed in the UIUI User interface.

Props @ocean90 and @webcommsat for reviewing this post.

#6-2, #dev-notes, #dev-notes-6-2, #i18n