A month with the WordPress Core team – February 2023

In February, we moved forward with some of our long-running projects. We worked on the SQLite database proposal, forms and details/summary blocks, PHP autoloader for WordPress core, updating documentation for themes, improving translatable strings in Gutenberg, and addressing coding standards issues in core, among other things. Read on to learn more!

Our monthly updates

Ari

Gutenberg and WordPress are enormous projects, and naturally, a lot is going on every day. Lately, I struggle daily because the development speed in Gutenberg is fast. So fast that it’s impossible to keep up and know what goes on – even for people like me working full-time on the project. There is just too much going on…

Especially during months when we are preparing a major WordPress release, there is a lot of pressure (from ourselves) to test, test and re-test everything multiple times, leaving no stone unturned. That takes a lot of time…

Thankfully I could focus on my long-running projects, and we made a lot of progress!

SQLite

I continued working on the SQLite implementation for WordPress Core. Together with Adam Zielinski, we finished the refactor, and now the implementation is a lot more secure and able to handle a significantly wider array of queries.

There is also a Trac ticket now to facilitate discussions (#57793), and a proof-of-concept implementation in #3220 which showcases how SQLite can be integrated in WP, and the changes that will be necessary in the installation process.

Forms & Inputs blocks in Gutenberg

With some help from Andrei Draganescu we finally figured out a solution for one of the blockers in the implementation. Basically, all automated tests for the block were failing, because the wp_kses_allowed_html filter was stripping out all <input> elements from the HTML. With that out of the way, I continued working on the blocks and updated them adding more improvements. Hopefully, once WordPress 6.2 is released we can ask for some design feedback from the community, and move this project forward.

For more information and details, you can find the code & discussion in #44214

Other tasks

  • I continued backporting PHP changes from Gutenberg to Core for v6.2
  • I submitted some small patches and bugfixes in WordPress Core and Gutenberg.
  • I started experimenting with ways to import dynamic text in blocks (#47964). This will allow theme authors and content editors to use dynamic text in their content (like for example the current year for their copyright line etc).
  • Lots of testing in the Gutenberg repository as well as WordPress’s trunk for the upcoming WordPress 6.2 release.
  • Various admin tasks
  • During a Yoast Hackathon we started going over translatable strings in Gutenberg, and worked on fixing some of these errors. The project is still a work in progress, but you can find our current work on #48130
  • Continued working on the WP PHP Autoloader implementation (#3470)
  • Continued with a refactor of the global styles we started months ago, to use the style-engine (WIP – #48955)

Carolina

Gutenberg

My main focus has been on WordPress 6.2, the later part of a release is stressful and it is difficult to keep up with all the decisions and to find where you can help out the most. It definitely makes me feel restless.

Besides 6.2, I have worked on improving documentation for theme.json #48250 #48269, continued on the details/summary block, experimented with caption settings for the featured image, and worked on role attribute block support #47868.

The post excerpt update that re-added the excerpt length setting was merged, but shortly after we discovered new bugs. One of the bugs were fixed with a new minor release of Gutenberg. There are still more bug fixes and improvements to be made, and a new pull request is waiting for review and testing.

Core & themes

I have worked on updates for the Theme Developer Handbook, and I have continued triaging bundled theme Trac tickets. I am so glad that I am not alone working on the themes; especially sabernhardt and mukesh27 are contributing a great deal.

Sergey

WordPress 6.2

For the past month I continued triaging and reviewing tickets for the next major release, WordPress 6.2, as part of my duties as a Core Committer.

I made fifty-nine commits to WordPress core, mostly various bug fixes and enhancements. I also led a meeting for new core contributors, published the script for running these meetings in the handbook so that anyone interested could run them too, and triaged new tickets incoming into Trac (the bug tracking system that WordPress uses).

In our weekly mob coding sessions with Ari, Carolina, and Andrea, we started working on resolving the remaining coding standards issues in WordPress core, starting with always using strict comparison in PHP files. See PR 3873 for more details.

Some other notable changes include:

  • Introducing the WP_Automatic_Updater::is_allowed_dir() method to avoid a PHP warning in the update process if the open_basedir directive is in use. See ticket #42619 for more details.
  • Adding more error checking to WP_List_Util::pluck(). See ticket #56650 for more details.
  • Addressing all the remaining coding standards warnings in bundled themes. See ticket #56791 for more details.
  • Marking screen reader strings as such with translator comments. This aims to provide better context for translators and make it easier to determine that some strings contain hidden accessibility text and are not displayed in the UI. See ticket #29748 for more details.
  • Documenting default values for optional parameters in various DocBlocks. See ticket #56792 for more details.
  • Checking that either mysqli_connect() or mysql_connect() function is available when loading WordPress core. This resolves a fatal error and displays an actionable message if the mysqli PHP extension is missing. See ticket #51988 for more details.