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

Proposal: Default Theme Task Force for 2024

In May, a proposal was published with a suggestion to retire some of the older, lesser used default themes. With the release of Twenty Twenty-Four, there are now 14 default themes maintained by the project, making it difficult to effectively maintain all of them. Additionally, retroactively adding support for new 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 features is important to ensure that users can unlock the power of the block editor while using these themes. This is becoming increasingly harder to do in a timely manner with the high standard of quality our users deserve.

After some good discussion in the comment section, Matt (@matt) joined in and clarified that the original intention for each default theme was to maintain them forever. He issued a challenge to rethink how the team approaches the maintenance of these default themes to make them easier to maintain, and more future-compatible.

In response to that request, I submitted “Improving the maintenance of older default themes” as a topic for the Community Summit in August. This topic was accepted, and a fantastic session took place with many of the top theme-focused contributors from the community in attendance.

I highly recommend reading the raw notes in their entirety before responding to this proposal and participating in this discussion, but for the sake of including the context of the important takeaways from that discussion, here are next steps and potential action items that were identified:

  • Consider having a Theme Wrangler for every release.
  • Explore moving default themes to 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/ (with sync to SVNSVN Subversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase.), moving only the most critical issues from tracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. to move over.
  • Explore creating style variations and patterns based on past default themes, as a way to “blockify” the older themes.
  • Explore setting up 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. testing for default themes
  • How do we improve the feedback 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. from people building themes in GB?
  • Improve default theme docs.

All of these are reasonable next steps and worth exploring further as potential changes. However, after considering this topic some more and discussing with @chanthaboune, it’s become clear that the first step to any solution to this problem is cleaning up after ourselves. At the heart of the problem is not a tooling or philosophy problem, it’s a bottleneck of available contributor time with an interest in supporting these themes.

At the time of publishing, there are 436 open tickets in the Bundled Theme component, 53 of which have not received any response. This list of outstanding tickets needs to be properly groomed and addressed before any tooling changes can be considered. 

Creating a Theme Task Force

This post proposes the creation of a contributor working group with the goal of tackling the Bundled Theme component ticketticket Created for both bug reports and feature development on the bug tracker. backlog, focusing on one or two themes at a time and using their best judgment to:

  • Triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. the list of open tickets for the Bundled Theme component.
  • Address bugs in a future-proof way.
  • Individually evaluate enhancements and feature requests, closing any that are no longer relevant or not supportive of project priorities.

One criticism of how default themes are maintained has been that updates are always released at the same time as WordPress major and minor releases. After researching and investigating why this is the case, no specific reasons were discovered that indicated this is a requirement.

Recently, there have been a few occasions where updates to default themes were released independent of WordPress ones, and these have gone quite well. It is recommended that this practice continues as a part of this proposal in an effort to more efficiently progress through this large backlog of tickets. Theme updates can be released as often as necessary. Theme updates accompanying WordPress major and minor releases are not barred, but rather welcome when deemed necessary as supplemental to any other updates published by this group.

While each theme receives increased individual attention, the state of support for the block editor and all of its features will be audited and evaluated.

Once this ticket list is under control, further discussion can be had around potential tooling changes (GitHub vs SVN), frameworks or methodologies that can be implemented to make maintenance easier, etc.

Summary & Volunteers

In total, default themes account for over 10% of all WordPress installs. While some are less used, the active sites for each of them represent site owners and end users that deserve our attention and consideration. In order to better support them in a future compatible way unlocking the block editor, this house keeping initiative is a necessity.

If this initiative speaks to you and piques your interest, please reach out directly on WordPress.org Slack instance or Matrix homeserver to @desrosj or @chanthaboune, or volunteer in the comments below.

Props @chanthaboune for pre-publish review.

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

Phase 3: Collaboration

Over the last few years, the WordPress project has been transforming the way users create and manage content on their websites. The introduction of blocks and the editing experience surrounding them has provided people with increased flexibility and expressive options.

The GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ project has undergone several phases since its inception. It began with the introduction of 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 WordPress 5.0, which allowed users to create and edit content using modular blocks. It then followed with a second phase, bringing the block editing experience to the rest of the site.

As the project evolved, new features were introduced to enhance the user experience further. Patterns, for instance, allowed users to reuse predefined block combinations and layouts, helping streamline the design process. Block themes enabled creators to fully embrace the blocks for an entire website, from 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. to footer. The community’s collaborative spirit has fostered an ever-growing library of resources that empower users to create stunning and highly functional websites.

We are now planning its third phase, which is going to be centered around fostering seamless collaboration, tying together the user experience, and streamlining the content management flows to improve the way creators and teams work together within WordPress.

Mockup showing the editor with three users online and editing at the same time. Users are displayed in the header as "active" and their cursor shows in the canvas.

To accomplish this, we’ll be looking beyond the editors at the rest of the adminadmin (and super admin) experience. This post provides a preliminary outline of the focus areas. These items are not set in stone, and your feedback and contributions are crucial to help shape the direction.

  • Real-time collaboration. Imagine being able to work together in real-time across all block editors, crafting content and designs seamlessly without being locked out of editing. The goal is to provide all the necessary infrastructure and UIUI User interface to handle multiple users working together on the same content simultaneously, making it easier to create, edit, and customize web pages and posts as a team.
  • Asynchronous collaboration. While simultaneous collaboration is a crucial part to unlock, there are multiple workflows that rely on asynchronous collaboration that will also receive attention. Key features include draft sharing for content and design changes, inline block commenting, review assignments, improved version controlversion control A version control system keeps track of the source code and revisions to the source code. WordPress uses Subversion (SVN) for version control, with Git mirrors for most repositories., and task management. The goal is to enable users and larger teams to collaborate on projects and its different parts at their own pace and based on their workflows.
  • Publishing flows. This includes the various processes, requirements, and steps involved in creating, editing, reviewing, and publishing content within WordPress. These flows could include features such as editorial requirements, customized goals (accomplish certain number of words or images), task completion prerequisites (set 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.; complete info on block x; etc; before publishing is unlocked), and support for multiple preview contexts (members vs no members, different context for stories, etc). CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. wouldn’t necessary add all the features but provide the necessary infrastructure to define flows that can integrate seamlessly with the editor.
  • Post revisions interface. Make them more visual, aware of individual blocks, and explore adding the ability to schedule 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. across multiple parts of a site. For example, being able to target updates for an event or campaign that might require coordinating the scheduling of multiple content types and resources. This also overlaps with addressing theme switching flows and scheduling that leverage the flexibility of block templates and styles.
  • Admin design. Begin the process for an admin design update and navigation work, with plugins and customized user flows in mind. Admin notices and the UI library of design components will be a major part of this effort to ensure use cases are supported while respecting the user experience. This work also includes improving the admin list views (those used in posts, pages, categories, templates, comments, and by hundreds of plugins) with a more modern design and refined extensibility support for interactivity.
  • Library. Introduce an admin section or “library” for managing blocks, patterns, styles, and fonts. As part of this work, also look at what improvements can be done to enhance the media library design, interactions, and extensibility.
  • Develop a global search & command component that’s extensibleExtensible This is the ability to add additional functionality to the code. Plugins extend the WordPress core software. and can accommodate navigating to content (example: edit About page); navigating to admin sections (example: go to WooCommerce orders); and running contextual commands (example: create new post; toggle top toolbar; insert pattern; etc). As AI tools are taking the world by storm, this could also play an important role in letting 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 authors integrate novel solutions that are prompt based in nature.

If there’s anything you were hoping to see addressed that’s not yet captured, please share your thoughts in the replies. Keep in mind that there are other active projects related to the prior phases that will continue alongside these newer efforts (i.e.: more blocks, footnotes, better tables, grid layout system, the block 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. roadmap, block development experience, performance, infrastructure like sqlite, playground, etc). For clarity, the phase 3 items shared above are not planned for 6.3.

#gutenberg, #phase-3

Help us test the SQLite implementation

A few months ago, a proposal was published to make WordPress officially support SQLite. After the proposal received a lot of positive feedback from the community, we started working on an implementation to make that happen.

Instead of releasing a separate feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins., it was deemed preferable to implement this as a module in the Performance Lab pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party. As of version 1.8.0 of the Performance Lab plugin, the module is now available for testing.

EDIT: After feedback received in this post’s comments, the SQLIte database integration was also released as a separate, stand-alone plugin available on w.org/plugins/sqlite-database-integration.

We would like to urge hosts, plugin authors, and theme developers to test the implementation and help us move forward with this project – with the hope of merging an SQLite implementation in WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. in a future release.

How to test the SQLite implementation

In order to test using an SQLite database instead of MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/. for your WordPress site, you will need to follow the steps below:

Option 1 – If you are using the Performance Lab plugin on your site:

  1. Install and activate the Performance Lab plugin on your site.
  2. Navigate from your dashboard to Settings > Performance.
  3. Enable the SQLite module, and click “Save changes”.
  4. As soon as you save your changes, the plugin will automatically copy the db.php file in your wp-content folder, copy the data for the current user and site title, and also log you in for a more streamlined experience.

Option 2 – Using the stand-alone plugin:

  1. Install and activate the SQLite Database Integration plugin on your site.
  2. Follow the on-screen directions.
  3. As soon as you click the button to install the SQLite database, the plugin will automatically copy the db.php file in your wp-content folder, and you will be redirected to the WordPress-installation screen to set-up your new database.

Important note: When activating SQLite, your site will create an entirely separate and fresh database. We have implemented a basic setup so that you don’t have to go through the installation screens, but nothing else is migrated from the original database beyond that.

Frequently asked questions

Will I lose any data?

No. When you activate the SQLite implementation, a new database is created. Your old database remains unaltered, and when you disable the module, your site gets back to using its previous, unaffected MySQL database.

I had data on my old database, and I don’t see my posts, pages, users, etc, on my SQLite site.

The SQLite implementation does not include a way to migrate data from one database to another. Since this is a proposal for an implementation to be merged in WordPress Core, we need to follow the WordPress Core principles. Data migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. is not something that Core should do; it is clearly plugin territory. Your data remains safely in your previous database, and you can access it again by disabling the SQLite module.

When SQLite gets merged in Core, migration and backup plugins will add support for it.

Will this work if I have another db.php file in my wp-content folder?

Unfortunately not. If your site already includes a db.php file in the wp-content folder, you will not be able to test SQLite on your site.

You can check if your site already includes a db.php file from another plugin by going from your dashboard to the plugins screen and then navigating to the Drop-in tab.

Keep in mind that this limitation only applies because the implementation is in a plugin, and therefore it needs the drop-in file. Once SQLite is part of Core, this will not be the case.

Historical/Implementation details

The code for the SQLite implementation was copied from https://github.com/aaemnnosttv/wp-sqlite-db/blob/master/src/db.php by Evan Mattson, which is a fork of the original work on the sqlite-integration plugin by Kojima Toshiyasu. It was then refactored, coding standards were applied, and an integration with the Performance Lab plugin was built.

The SQLite code used has been in use for many years and has been battle-tested. We opted to start with a tried solution instead of starting from scratch because many of the problems we would have encountered have already been addressed and solved in the pre-existing implementation.

Where to report issues and feedback

If there are issues that should be addressed, please create a new issue in the plugin’s GitHub repository. When you do, please be sure to mention your SQLite version. You can find it by going from your Dashboard to Tools > Site Health > Info > Database, while the SQLite module is active.

Props @flixos90 and @olliejones for reviewing this post.

Dev Chat Agenda, September 13, 2022

(Update September 14, 2022, 20:30 UTC – walkthrough transcript added to Section 4, Releases. @webcommsat)

The weekly WordPress Developers Chat will take place on Wednesday September 14, 2022 at 20:00 UTC.
All are welcome to join the chat in the #Core channel of the Make WordPress SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/..

1. Welcome

Summary from the Extra Dev Chat at WordCamp US Contributor Day on September 11, 2022

2. Announcements

Any new announcements? Nothing received for the agenda.

3. Blogblog (versus network, site) posts

Canonical Plugins Revisited post (September 11, 2022) – posted by @matt.

WebP in Core for 6.1 post (September 11, 2022) – posted by @matt.

Discussion under Focus group updates (images) in the Performance team meeting about WebP after announcement about it and 6.1 release.

Let’s make WordPress officially support SQLite proposal posted by @aristath.

A Week in Core (September 14, 2022) – thanks to @audrasjb.

Feedback request for Proposal to add a dominant color background to images posted by @pbearne.

Welcome to the new team reps for the Performance team: @mxbclang and @flixos90 (Slack IDs @mxbclang and @flixos90).

Have a post on WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ to share for dev chat? Add it to the comments.

4. Upcoming releases

a) The next major is 6.1.

Update from the release squad and any questions.
6.1 development cycle
Bug scrub cycle

Update on the 6.1 product walkthrough and transcript (September 14, 2022).

b) Minor releases

Update if needed.

c) Discussion on early timeframe

Is there anything new on this discussion?

5. Components and tickets

Are you a component maintainer? Shepherding a ticketticket Created for both bug reports and feature development on the bug tracker.

6. Open floor

Please add any items for dev chat to the comments.

#agenda, #dev-chat

Devchat summary, September 11, 2022

1. Introduction and welcome

Start of the meeting on the #core channel of the WordPress SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/.

@marybaum led this extra WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. US Contributor DayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/. Developers Chat in-person and virtual on this agenda.

A huge welcome to our new WordCamp US contributors to coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.!

2. Announcements

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/ 14.1 RC1 will land September 13. 14.1 will be the last version that merges into WordPress 6.1. More details in this Editor chat summary.

3. Blogblog (versus network, site) posts of note

Block-based template parts for Classic themes – highlighted in the core-editor meeting

Improving DevHub code references

A week in Core, September 5, 2022 – thanks to @audrasjb

Ending security updates for WordPress versions older than 4.0

Thanks to dev chat cohost, @webcommsat for the links and running a dev chat check-in at the usual meeting time in core on Wednesday. Summary from the check-in are in the comments on this post.

Summary from last week’s dev chat on August 31, 2022 – Props to @webcommsat for doing the notes, @marybaum and @costdev for review.

WordPress 6.1 Release Product Walk-through, Thursday September 13, 2022, 16:00 UTC. All welcome to join. The zoom link will be shared before the event.

Block-based template parts for Classic themes – highlighted in the core-editor meeting.

Add a dominant color background to images proposal – shared in the Performance team last week.

4. Upcoming releases

The next major is 6.1. Bug scrubs are happening on schedule.

The next minor will be 6.0.3, if tickets show there is a need for it.

5. Components and tickets

@costdev raised an enhancement ticket on Trac to revise the ticketticket Created for both bug reports and feature development on the bug tracker. screen. Link to the discussion on Slack.

And in honor of #WCUS, @jorbin raised a good first 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. in #56547.

6. Open floor

@matt highlighted two core blog posts.

WebP in Core for 6.1

Canonical Plugins Revisited

Nothing else was raised during the session. If anyone has items to add, please do so in comments.

The next dev chat will take place on Wednesday September 15, 2022, at 20:00 UTC

Props to @dpotter05, @leeseoftbc, @rcorrales, and @leeseoftbc for finding out about dev chat and for learning about writing the summaries, to @marybaum for leading the meeting.
Props to @webcommsat for editing the post, and to all those who attended,
helped or supported core tables on Slack or in person

#dev-chat, #summary

Canonical Plugins Revisited

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 directory is great, but many plugins are controlled by a single dev or company, and often end up going a direction of a premium or pro version, sometimes even removing functionality that used to be in a plugin and pushing it into the pro version. This can also create an incentive to put something into a SaaS service that is easily done in a more distributed fashion locally to the site. Even accepting donations can create some weird incentives for how to divide those among a number of contributors.

WordPress itself thrives because it’s a collaborative effort of many people with many varied interests, but coming together to create something that is explicitly open sourceOpen Source Open Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL., free, and available to all. We need to evolve the plugin directory to make it easier to accept code and documentation contributions. (We’re pretty good with translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. contributions already.) Also I think we should build on the successful history of canonical plugins like MP6, 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/, and 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/. to have more community-developed plugins, called canonical because they will be the official first-choice recommendation by coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and w.org for an area, that share in the ethos and approach of WordPress itself but to a more niche area that might not be right for core.

We are reaching a point where core needs to be more editorial and say “no” to features coming in as ad hoc as they sometimes do, and my hope is that more Make teams use this as an opportunity to influence the future of WordPress through a plugin-first approach that gives them the luxury of faster development and release cycles (instead of three times per year), less review overhead, and and path to come into core if the plugin becomes a runaway success. I am very conscious that when people are aiming to have something in core, a “no” or “not now” can be frustrating and sometimes create artificial pressure to put something in before it’s ready, as I believe happened with the REST API in WP 4.4.

Canonical plugin ideas for each make team:

Design: More adminadmin (and super admin) themes.
Mobile: (not sure)
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): An alternative 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.-based admin designed for accessibility and simplicity.
Polyglots: Inline translation submissions for core and plugins and themes.
Support: Related threads or documentation pages dynamically loaded from w.org for the “help” dropdowns on every page.
Documentation: Experiment with adding more inline documentation to wp-admin interfaces. Gather opt-in stats on what is actually read and used, which links to .org get clicked on.
Themes: Better previews of theme customizations, activation workflows that allow customization of colors / images / typography.
Plugins: Inline rating and feedback for plugins, crash and compatibility data reporting back.
Community: Experiment with the 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. that promotes events to call to action for organizing when there’s not a local meetupMeetup All local/regional gatherings that are officially a part of the WordPress world but are not WordCamps are organized through https://www.meetup.com/. A meetup is typically a chance for local WordPress users to get together and share new ideas and seek help from one another. Searching for ‘WordPress’ on meetup.com will help you find options in your area., and better incorporates online events including workshops and cohort classes.
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.: Login with .org login account. Dashboard with all of your linked WPs on w.org. Monitor versions, install plugins with one-click, etc.
Training: Courses or training in every help dropdown.
Test: Opt-in JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. or PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher error catching that reports back to a tracking server.
TV: Integration with help dropdowns, inline tutorial videos.
Marketing: Widgets and blocks for people to link back to W.org, like super-charged “powered by”, and promote their liked or favorite plugins and themes.
CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress.: N/A.
Hosting: Experiment with standard 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., icons, and menu items for hosts to link or embed things like email, domains, contacting support.
Tide: Show the data more places in wp-admin.
Openverse: Should actually just come into core more, but perhaps plugin would be a good place to experiment with submitting something to openverse and CC licensing any media upload. Community and collaborative tagging of uploads and openverse items.
Photos: Similar to openverse, make it possible to submit uploads and search directory.
Core performance: WebP conversions for new uploads and batch processing to convert old images. Show before-after space usage and page performance. (Previous post on WebP in 6.1 that inspired this.)

This is not meant to be an exhaustive list, and I’m sure the teams themselves could come up with much better ideas and options, but I hope it sparks discussion at 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/. and beyond on how we can utilize plugins better to increase the speed of evolution for WordPress, keep core light, fast, and opinionated, and do so while saying “yes” to more ideas and experimentation.

WebP in Core for 6.1

I’ve been reading through all the conversation and issues here. I am interested in supporting new formats and improving performance, but I think this change being pushed by default to users when they upgrade to 6.1 is a lot for right now, including with some of the clunky interactions OSes still have around webp (and HEIC!) files.

I’m happy for support for working for webp and HEIC files to stay in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., as we should be liberal in what we accept and work with, but not with the change to convert everything to webp when JPEGs are uploaded.

This is excellent territory for 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, a concept I think every Make team should be exploring a lot more as a place to experiment and push functionality, much like we have with MP6 and 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/ in the past. I think the plugin directory needs more collaborative, community-developed, and non-commercial or no-upgrade plugins that do something well, and make teams are the perfect groups to develop and maintain those. It’s the ethos and process of core applied to plugins, that then we can officially recommend and feature in the plugin directory, and also allows us to keep core light or give more time for the ecosystem around something (like WebP) to mature.

Will do a second post on canonical plugins.

WordPress 5.9 Release Squad

Update on 5.9, the schedule and more on the 5.9 Development cycle page.

WordPress 5.9 is full steam ahead towards the December 14, 2021 release date. With the Go/No Go deadline behind us, the necessary roles required for this version’s release squad have become more clear, and the team is starting to take shape.

Below is the list of roles the squad roles for the 5.9 release with confirmed contributors listed. Any role listed with a hand raised emoji (✋) still need contributors and volunteers.

  • Release LeadRelease Lead The community member ultimately responsible for the Release.: @matt
  • Release Coordinators:
  • Triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. Leads: @chaion07, @audrasjb.
  • Editor Tech: @noisysocks, @mamaduka.
  • Editor Design:
  • CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Tech: @hellofromtonya. ✋
  • Theme Leads: @kjellr, @jffng.
  • Technical Writer: @psykro. ✋
  • Documentation Leads: @mkaz, @milana_cap.
  • Marketing & Communications: @chanthaboune. ✋
  • 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) Lead:
  • Test Leads: @boniu91, @annezazu.

Some Notes

  • The release squad list on the 5.9 development cycle page has also been updated. As additional contributors are confirmed for the positions needing volunteers, they will only be added to the development cycle page (not accompanied by an additional post here).
  • @noisysocks is coordinating a group of feature-specific contributors, and will be the main information person for all editor related features.
  • All WordPress 5.9 related coordination will happen inside of the #5-9-release-leads 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/. room. This room is a public viewing area for transparency (and knowledge sharing!), but is a workspace for that release squad so please limit posting as much as possible for those not on the release squad.

Props @chanthaboune and @jeffpaul for peer review.

#5-9