Summary, Dev Chat, April 10, 2024

Startย of the meeting inย SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/, facilitated by @mikachan.

Announcements

WordPress 6.5.2 Maintenance and Security Releaseย was released on Tuesday, April 9. WordPress version 6.5.1 could not be releasedย due to a packaging error.

Forthcoming Releases

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.: 6.6

We are officially in theย WordPress 6.6 release cycle.

@priethor published thisย WordPress 6.6 Planning Proposal & Call for Volunteersย post recently, and is currently collecting the names of squad and cohort volunteers to share with leadership.

@jeffpaul commented that โ€œat least finalizing the CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. & Editor tech leads and an RCrelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). would go a long way towards formally kicking off.โ€

@jorbin said, โ€œIโ€™ve also seen a couple questions about default themes and getting that kicked off during this release, I think getting an answer there would be helpfulโ€

@joemcgill asked, โ€œโ€ฆwhat the focuses of this release would be. @chanthaboune originally proposed that 6.6 be held as a maintenance and polish release inย this post, but Iโ€™m unsure if thatโ€™s still the plan.โ€ And later, โ€œTo be clear, Iโ€™m not necessarily advocating for 6.6 to be mainly a polish release, I just see the need to be intentional in release planning if we want to actually execute that objective.โ€

Next maintenance release: 6.5.3

There are currently 13 open tickets inย the 6.5.3 release milestone.

Later in the meeting @jorbin shared an initial proposed schedule for 6.5.3.

The first minor releaseMinor Release A set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality. for 6.5 is out, though it was a quick turnaround security release. For a proper minor release, I would like to gather thoughts on the following plan:

  1. @grantmkin has volunteered to help on the editor side (Thank you!)
  2. I would like to suggest a target of 7 May for 6.5.3 with an RC on 2 May. This will allow for about 4 weeks to identify and fix any bugs. I think Tuesdayโ€™s have served us fairly well.
  3. To assist in this, I would like to start 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. scrubs. Iโ€™m thinking twice weekly with one focused on tracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. and one on githubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the โ€˜pull requestโ€™ where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner. https://github.com/ until we get closer to the release with the last few looking at both bug trackers
Slack reference

Nextย 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/ย release: 18.2

Gutenberg 18.1ย was released on April 10 and includedย these issues. 18.2 is scheduled for April 24 and will includeย these issues.

Discussion

During discussion we checked in on the progress that the 6.5 release coordinators are making on organizing a release retro post (seeย this thread). @marybaum confirmed that @priethor, @marybaum, and @akshayar are working on this and will update the #6-5-release-leads channel soon.

It was confirmed that retros have been a part of our release process for several previous releases. Many of them can be found by lookin at the retrospective 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.) on this site.

Highlighted posts

The full list of posts from the last week in Core can be read on the agenda at this link.

Open floor

Tony Gravagno proposed that retrospectives could be used for marketing. โ€œPeople need an occasional reminder and reinforcement that their platform of choice is aggressively maintained, despite occasional press about 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. vulnerabilities โ€ฆ which is all most people see about WP.โ€ He then suggested that this might be better discussed in the #marketing channel.

Damon Cook shared that he has recently added details to the Project Updates and Details area in key Gutenberg GitHub Project boards (example:ย WordPress 6.6 Editor Tasks). Damon is planning on trying to keep those up to date throughout the cycle.

Screenshot of the status updates screen from GitHub project boards.


This prompted @jeffpaul to ask whether these updates could be provided on make/core to capture a broader audience.

โ€œMy lens is for someone whoโ€™s not in lots of GitHub issues, PRs, or boards and finds it hard to stay current on whatโ€™s transpiring there and thus not as able to contribute without that context.ย  Trying to find ways to bring some of that scattered context back to make/core for broader consumption and contextual understanding.โ€

Damon was open to experimenting on how to best cross-share info in both places. โ€œโ€ฆfor now, I just wanted to make folks aware that Iโ€™ve started utilizing the feature and can even deactivate or remove it if it is confusing.โ€

The full conversation about these status updates starts here.

@dmsnell wanted to remind folks about his proposal to remove support for HTML4 and XHTML. โ€œDoing this is mostly ceremonial, since those formats arenโ€™t supported in reality. Removing them officially though gives us liberty to modernize existing code and improve WordPressโ€™ HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.-handling reliability. More info in the linked ticketticket Created for both bug reports and feature development on the bug tracker.:ย #59883โ€œ.

Props to @mikachan for reviewing.

#6-6, #core, #dev-chat, #summary

Agenda, Dev Chat, Wednesday April 10, 2024

The next WordPress Developers Chat will take place onย  Wednesday April 10, 2024 at 20:00 UTC in theย coreย channel onย Make WordPress Slack.

The live meeting will focus on the discussion for upcoming releases, and have an open floor section.

Additional items will be referred to in the various curated agenda sections, as below. If you haveย ticketticket Created for both bug reports and feature development on the bug tracker.ย requests for help, please do continue to post details in the comments section at the end of this agenda.

Announcements

WordPress 6.5.2 Maintenance and Security Release was released on Tuesday, April 9. WordPress version 6.5.1 could not be released due to a packaging error.

Forthcoming releases

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.: 6.6

We are officially in the WordPress 6.6 release cycle.

Next maintenance release: 6.5.3

There are currently 13 open tickets in the 6.5.3 release milestone.

Next 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/ release: 18.2

Gutenberg 18.1 was released on April 10 and included these issues. 18.2 is scheduled for April 24 and will include these issues.

Discussions

We will plan on following up on formalizing a release team for 6.6 and check in on the progress that the 6.5 release coordinators are making on organizing a release retro post (seeย this thread).

Feel free to suggest additional topics related to this release in the comments.

Highlighted posts

CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Editor Updates

Props to @annezazu for putting together these updates.

Tickets for assistance

Tickets for 6.6 will be prioritized.

Please include detail of tickets / PR and the links into comments, and if you intend to be available during the meeting if there are any questions or will be async.

Open floor

Items for this can be shared in the comments.

Props to @mikachan for reviewing.

#agenda, #core, #dev-chat

Performance Chat Summary: 9 April 2024

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

Announcements

  • Welcome to our new members ofย #core-performance
  • Plan to launch 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.ย version 3.0.0 on Mon April 15

Priority Items

Structure:

  • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
    • Current release (WP 6.6)
  • Performance Lab plugin (and other performance plugins)
    • Open discussion regarding streamlining PL plugin and other standalone pluginsย #1061
  • Active priority projects
    • INP research opportunities
    • Improve template loading

WordPress Performance Trac Tickets

  • For WordPress 6.6:
    • @adamsilverstein volunteered to be the performance release leadRelease Lead The community member ultimately responsible for the Release. for 6.6

Performance Lab Plugin (and other Performance Plugins)

  • Open discussion regarding streamlining PL plugin and other standalone pluginsย #1061
    • @flixos90 at a high level I like whatย @swissspidyย proposed inย https://github.com/WordPress/performance/issues/1061#issuecomment-2044774194
      • It would be great if we could have distinct releases per plugin, and automate it completely. Even before we had standalone plugins, the Performance Lab release process involves quite a bit of manual work, like bumping versions and adding changelog in PRs. It takes just a very short time, so not a big overhead, but still prone to human error
    • @joemcgill I definitely like the idea of making the release on GH theย resultย of a release rather than theย causeย of a release. Seems like we need to better define all of the requirements that an updated process should meet prior to diving into implementation. Is there someone consolidating those requirements?
      • @thelovekesh has volunteered to pick this up, aiming for next Monday to collect everyoneโ€™s feedback and to generate a proposed approach
  • @mukesh27 has been working on below some follow-up PRs.
    • PRs that have been merged:
      • PRย #1116ย โ€“ Delete option when uninstalling the Modern Image Formats plugin
      • PRย #1117ย โ€“ Update 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 by the repository owner. https://github.com/ actions dependency
  • @flixos90 openedย https://github.com/WordPress/performance/issues/1118ย which is about enhancing theย npm run sinceย script to support standalone plugins. This unlocks a simple yet valuable improvement to ourย currentย publishing workflow for standalone plugins. That said, this is separate from the main discussion we should have here as it doesnโ€™t holistically change anything. I just wanted to mention it for reference

Active Priority Projects

Improve template loading

INP research opportunities

  • @adamsilverstein still working through the results, some discussion has continued in comments on the doc. I also sawย @swissspidy opened this ticketticket Created for both bug reports and feature development on the bug tracker. which is related to one of the findings #60962 (thanks!)
    • One other small update, part of the INP doc suggests a move towards 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. adoption could be helpful, in that regard I have added custom metrics to httparchive so we can track API adoption:ย https://github.com/HTTPArchive/custom-metrics/pull/113
  • @westonruter For sites still using MediaElement.js, Iโ€™ve identified some code that appears to be needlessly spending ~50 ms (when profiling at 6x CPU slowdown on my machine) to check if theย pointer-eventsย style isย supported. Since this is nowย supportedย by >98% of browsers, I think this entire 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. of logic should be replaced with just a simpleย export const SUPPORT_POINTER_EVENTS = trueย given this.
    • Granted, this would be more of a LCP fix than an INP fix since it happens early when the page is loading.

Open Floor

  • @thelovekesh This PR is waiting for review โ€“ย https://github.com/WordPress/performance/pull/981. Can someone please take a look. Thanks.
  • @spacedmonkey I am going to look into adding new functions for loading multiple networknetwork (versus site, blog) option at once.ย These plan to mirror the new options for site options.ย Everyone happy to add this to performance focus?
    • I also want to look into a ticket I created regarding changing how query caches are invalidated
    • At the moment, we use last change as a salt for cache keys.ย This results in validation but it also means for high traffic sites that generate lots of content, lots of keys being generated.ย So much so that people are turning the query caches off.
    • I want to find a way to reuse the same query cache keys even after invalidation.ย Instead of make a new cache and hopingย aย the existing one falls out of cache, reuse the same key and sort the last modified time as part of the object.

Our next chat will be held on Tuesday, April 16, 2024 at 15:00 UTC in the #core-performance channel in Slack.

#core-performance, #performance, #performance-chat, #summary

Whatโ€™s new in Gutenberg 18.1? (10 April)

โ€œ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 Editor project (formerly called Full Site Editing).


Whatโ€™s new in Gutenberg 18.1? (10 April)

Gutenberg 18.1 is ready and available for download!

With more than 150 pull requests (PRs), Gutenberg 18.1 is packed with features and bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes to suit all tastes โ€” new pattern and template part insertion functionality, site backgrounds in global styles, 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) and performance improvements.

Lovers of documentation and code quality enhancements will be pleased to learn that their favorite PRs make up almost a third of the total number in this release!

As always, a big thank you goes out to all who contributed, with special gratitude to first-time contributors. Great work!

In this issue:

Set site background images in the Site Editor

Set site background images in the Site Editor

Version 18.1 extends background image support to top-level global styles in the Site Editor, which means you can add custom background images and photos to sites. Images can set to repeat, or be displayed as contain or cover backgrounds. (#59454)

And for those wondering โ€” yes, as well as regular images, looping animated gifs will also work.

See more with data views

New data views in the block editor for pages and patterns

Whether itโ€™s sorting or searching your patterns in grid and table layouts (#60337), or filtering and previewing all of your sites pages (#59950), version 18.1 brings further design consistency to configurable adminadmin (and super admin) views, not to mention quicker access and management of site assets.ย 

Alongside the continuous integration into 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 workflows, data views have undergone improvements to accessibility and keyboard navigation (#59637).

Pattern schema and insertion

Pattern insertion with zoomed out view

Pattern insertion gets an upgrade in the latest version of Gutenberg. The editor canvas will zoom out when browsing and inserting patterns using the block inserter, allowing a greater overview of how your patterns appear alongside the rest of your siteโ€™s content. (#59775)ย 

Patterns are a powerful way to define design assets with configurable content. You can now give your patterns a โ€œschemaโ€ by naming blocks that are overridable in all instances of those patterns. Users of your patterns will be able to see exactly which blocks are editable via a handy list in the 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.. (#59977)

Swap and edit template parts

Swapping template parts design in the Site Editor

When editing your siteโ€™s templates, you can select template parts and immediately view alternative designs for that template part in the sidebar. Want to replace your footer design? Click on your templateโ€™s footer and select a new one from the available designs.ย Voilร ! (#60203)

Gutenberg has long had an option to preview a pageโ€™s template when editing that page. 18.1 lets you select and edit a pageโ€™s important template parts, such as the 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. and footer. To do so, click on a template part, then hit โ€œEditโ€ in the toolbar. (#60010)

Other notable highlights

The editor displays a confirmation modal before clearing template customizations. (#60119)ย 

You can collapse non-selected items in the list view using a handy new keyboard shortcut (Option-L on Mac, or Alt-L on Windows). (#59978).

Changelog

View the full changelog

Enhancements

Block Editor

  • Zoom out: Invoke zoom out mode when opening the patterns tab, and move the code to do so to a shared hook. (59775)
  • Block Previews: Update shadows in different contexts. (60161)
  • Update: Move post actions to the editor package. (60092)
  • Try: Show copy shortcut in block options. (60339)
  • Update image role description text to fix spacing. (60338)

Site Editor

  • Add rename page action. (60230)
  • Center the document title. (59134)
  • Consolidate when showing 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. link or action. (60194)
  • Editor: Update hover color of editor document title. (60113)
  • Improve the frame animation. (60363)
  • Try selecting closest editable block when clicking on a disabled block. (60016)
  • Update index view for pages. (59950)

Patterns

  • Add content schema to pattern editing view. (59977)
  • Close inspector on pattern categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. select. (60004)
  • Focus block selection button only in navigation mode. (60207)
  • Pattern Shuffling: Make the results deterministic. (60074)
  • Patterns page: Enable table layout. (60337)
  • Prevent reordering of header and footer template parts when zoomed out. (60054)
  • Remove manage all of my patterns link. (60345)

Block Library

  • Addย __next40pxDefaultSizeย to Image block Title Attribute. (60117)
  • Add support โ€œHTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. Elementโ€ to Site Tagline. (59654)
  • Image: Remove temporary image check for rendering controls. (60212)
  • Quote block: Button for cite add/remove. (59073)
  • Quote block: Remove appender. (60307)
  • Reduce specificity of block library styles conflicting with block supports. (59457)
  • Update navigation blocks to use consistent link UIUI User interface labels and field sizes. (60116)
  • Summary: Polish 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.. (60110)

Post Editor

  • Block Editor: Deprecateย __experimentalGetReusableBlockTitleย selector. (60278)
  • Editor: Move PluginPostPublishPanel and PluginPrePublishPanel to editor package. (60344)
  • Editor: Move publish panel handling toย editorย store. (60340)
  • Editor: Unify publish sidebar preference. (60334)

Global Styles

  • Add background to global styles changes output. (60229)
  • Background UI controls. (59454)
  • Follow up design tweaks for global styles presets. (60031)
  • Try reducing specificity of global styles selectors only. (60106)

Data Views

  • DataViews: Add a utility to share filtering, sorting and pagination logic. (59897)
  • Data views: Remove theย enumerationย type as redundant. (60084)
  • Data views: Update template actions. (60075)
  • Data views: Add confirmation modal for clearing customizations in templates. (60119)
  • Data views: Make trashTrash Trash in WordPress is like the Recycle Bin on your PC or Trash in your Macintosh computer. Users with the proper permission level (administrators and editors) have the ability to delete a post, page, and/or comments. When you delete the item, it is moved to the trash folder where it will remain for 30 days. a quick action again. (60165)

List View

  • Add keyboard shortcut to collapse list view items other than the focused item. (59978)
  • Adjust the List View close icon to resemble the Inspector close icon. (59999)
  • Update โ€œActionsโ€ string to โ€œOptionsโ€ in List View. (60136)

Templates

  • Add filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. to allow extending the list of post content blocks. (60068)
  • Render non-editable preview of template part when user does not have capabilitycapability Aย capabilityย is permission to perform one or more types of task. Checking if a user has a capability is performed by the current_user_can function. Each user of a WordPress site might have some permissions but not others, depending on theirย role. For example, users who have the Author role usually have permission to edit their own posts (the โ€œedit_postsโ€ capability), but not permission to edit other usersโ€™ posts (the โ€œedit_others_postsโ€ capability). to edit template part. (60326)
  • Template Parts: Remove pattern title from sidebar. (60160)
  • Template Parts: Update replace flow to separate template parts from patterns. (60203)
  • Template Parts: Update the โ€˜Replaceโ€™ label to โ€˜Designโ€™. (60156)

Zoom Out

  • Add a delete control to toolbar on zoomed out mode. (60214)
  • Media dialog push content in zoomed out mode. (60170)

Components

  • Popover / ToggleGroupControl: Useย useReducedMotion()ย fromย @wordpress/compose. (60168)
  • date-fns: Bump to v3.6. (60163)

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/

  • Allow view access of template rest endpoint to anyone with theย edit_postย capability. (60317)

Commands

  • Polish Command Palette. (60134)

Page Content Focus

  • Allow selecting template parts in page content focus mode. (60010)

Inspector Controls

  • Add: PostCardPanel component. (59870)

Package and utility updates

  • Router: Update history package to 5.3.0, fix query string generation. (60271)
  • Create block: Add new namespacePascalCase template variable. (60223)

New APIs

Extensibility

  • Extensibility: Support PluginBlockSettingsMenuItem in the site editor. (60033)

Bug Fixes

Block Library

  • Fix enqueuing block theme styles when separate asset loading is enabled. (60098)
  • Fix lightbox UI disallow editing. (59890)
  • Fix navigation link ui close focus management. (59925)
  • Removed pointer-events none inline style due it blocking crop action. (60305)
  • Search Block: Apply font-related style inheritance to input field. (60321)
  • Columns block: Fix arrow up into it. (55197)

Site Editor

  • Fix rendering PluginTemplateSettingPanel when weโ€™re editing a template. (60215)
  • Fix: Useย viewportWidthย in pattern preview data view. (60315)
  • Templates: Fix deferred rendering. (60361)
  • Site Editor: Consolidate save button functionality. (60077)
  • Revertย #60300: Make sure the CSSCSS Cascading Style Sheets. class id-dark-theme is added to the editor 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. body. (60616)

Block Editor

  • Make sure the CSS class is-dark-theme is added to the editor iframe body. (60300)
  • Raw handling: Preserve class. (60331)
  • Raw handling: Preserve empty paragraphs. (59476)
  • Wiriting flow: Backspace at beginning of first paragraph block prevents block from being deleted. (56329)
  • DOM: Fix return types of focus.tabbable methods. (60274)

Components

  • CustomSelectControlV2: Fix hint behavior in legacy. (60183)
  • InputControl: Ignore IME events whenย isPressEnterToChange. (60090)
  • TextControl: Apply zero margin to input element. (60282)

Global Styles

  • Fix missing class for Global Styles > Colors. (60094)
  • Reset specificity of body selector when processing with postcss. (60266)
  • Shadow: Revert shadow default presets opt-in to opt-out. (60204)
  • Global Styles: Make strings translatable. (60127)
  • Skip outputting base layout rules that reference content or wide sizes if no layout sizes exist. (60489)

Zoom Out

  • Fix zoom out mode toggling between pattern category selection. (60225)

Data Views

  • Fix focus outline visibility and truncation in data view record titles. (60191)

Layout

  • Fix horizontal flex layout in classic themes. (60154)

Post Editor

  • Editor: Memoize โ€˜getInsertionPointโ€™ selector. (60015)
  • Fix block toolbar dropdown separator color. (60336)
  • Backportbackport A port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch.ย r57868ย (Editor: Prevent font folder naive filtering causing infinite loops) from WordPress-Develop. (60141)

Block templates

  • Add null check to prevent errors inย get_block_templateย filter. (60491)

Utilities

  • URLURL A specific web address of a website or web page on the Internet, such as a websiteโ€™s URL www.wordpress.org: Return early in getFilename where URL argument is falsy. (60265)

Accessibility

Data Views

  • Add click-to-select behavior on table rows. (59803)
  • Data views list layout: Apply focus styles to items onย focus-visibleย rather thanย focus. (60253)
  • Update field display in grid layout. (60083)
  • Data Views: Updating keyboard navigation in list layouts. (59637)

Site Editor

  • Restore Style book close button tooltip. (60177)

Block Library

  • Remove CSS order property from social icons placeholder UI. (60032)

Performance

Block Editor

  • Avoid fetching all reusable blocks (user patterns) on post/site editor load. (58239)
  • Block editor: Optimize hasSelectedInnerBlock selector. (60330)
  • Templates performance: Resolve patterns server side. (60349)

Block Library

  • Template part: Avoid pattern fetch on mount. (60297)

Block Editor

  • Inserter: Cache search normalization results. (60080)
  • Format library: Improve unknown format performance. (48761)

Experiments

Site Editor

  • Zoom-out view: Disable canvas resizing. (60104)

Documentation

  • Add auto generated 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. documentation forย editorย package. (60356)
  • Add component props documentation. (60350)
  • Add phpย @globalย documentation. (59931)
  • Change heading level on troubleshooting section. (60233)
  • CustomSelectControlV2: Match v1 stories to test legacy component. (60182)
  • Docs (general): Fix some typos. (60260)
  • Fixย @todoย tags to follow standards in WordPress comments. (60148)
  • Fix Font Collection 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. schema definition. (60285)
  • Fix: Invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. documentation link to load 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. (60181)
  • Fix: Invalid links to the block supports api. (60199)
  • Fix: Non existent link to submitting to the block directory. (60389)
  • Interactivity API: Variable name correction in the documentation. (60056)
  • Create Block: Update external template documentation to include variants. (60095)

Code Quality

Block Editor

  • Add comment for unmemoized context. (60272)
  • Fix ESLint warning in BlockListBlock component. (60064)
  • RichText: Switch from disableEditing to standard html readonly attribute. (60327)
  • Site Editor: Reuse inserter search term normalization. (60218)
  • canInsertBlockType: Extract helper for selector dependants. (60235)
  • Fix editor canvas overflow on search results with position: Relative. (60287)
  • Editor: Move template areas to editor package. (60179)

Components

  • CustomSelectControlV2: Rename for consistency. (60178)
  • Navigator: Fix two nits. (60273)
  • NavigatorProvider: Move all state management to one reducer. (60190)
  • Components: Try obviating Popover pointer event trap. (59449)

Post Editor

  • Memoize the getTemplateInfo selector. (60200)
  • Update: Remove template summary component. (60351)
  • Update: Use getPostIcon selector on document bar. (60128)
  • Distraction free: Remove unwanted space from string. (60108)

Global Styles

  • Additional CSS: Add code comments contextualising tranformStyles for clarity. (60267)
  • Global styles: outputย :rootย selector for CSS custom properties. (42084)
  • Style Engine: Continue get_classnames 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 after adding the default classname. (60153)

Font Library

  • Add test for Font Library and Theme Style Variations. (60250)
  • Update google fonts font collection data URL to the latest version available. (60079)

Block Library

  • Image: Use the new โ€˜useUploadMediaFromBlobURLโ€™ hook. (60208)
  • Navigation Block: Add test coverage to check that post content is not removed. (60189)

Site Editor

  • DataViews: Donโ€™t memoize every callback โ€˜PagePagesโ€™ component. (60103)
  • History: Simplify the push and replace methods. (60112)

Rich Text

  • RichText: Separate fallback instance ID for selection retrieval. (60277)

Block Locking

  • E2E: Test BlockSwitcher availability in l-post-ul-group CPT. (60254)

Data Views

  • DataViews: Fix reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org warning error in list layout. (60101)

Tools

Testing

  • Automated Testing: Remove Puppeteer CI Job. (59311)
  • CustomSelectControlV2: Stabilize tests. (60133)
  • E2E: Fix flaky Site Editor pages end-to-end test. (60109)
  • Font Library: Add upload font test. (60221)

Build Tooling

  • Blocks: Fix doubleย gutenberg_ย prefix in built dynamic blocks PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher. (60288)

First-time contributors

The following PRs were merged by first-time contributors ๐ŸŽ‰ :

Contributors

The following contributors merged PRs in this release:

@aaronrobertshawย @aferciaย @andrewhaywardย @andrewserongย @artemiomoralesย @bphย @draganescuย @ellatrixย @fabiankaegyย @geriuxย @getdaveย @glendaviesnzย @interdevelย @jameskosterย @jasmussenย @jeryjย @jorgefilipecostaย @jsnajdrย @madhusudhandย @MaggieCabreraย @Mamadukaย @matiasbenedettoย @mcsfย @mikachanย @mikeybinnsย @mirkaย @mujuonlyย @n2erjo00ย @nirav7707ย @noisysocksย @ntsekourasย @oandregalย @ockhamย @okmttdhrย @pedro-mendoncaย @peterwilsonccย @ramonjdย @richtaborย @ryanwelcherย @scruffianย @shail-mehtaย @Soeanย @stevearissย @stokesmanย @t-hamanoย @talldanย @tellthemachinesย @torounitย @tyxlaย @youknowriad

Props to @andrewserong, @isabel_brison and @saxonfย for assisting with the preparation of this post.

#gutenberg, #gutenberg-new

What Happened to WordPress 6.5.1?

Observant folks will notice that the first minor releaseMinor Release A set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality. for WordPress 6.5 is 6.5.2 instead of 6.5.1. This is due to an error with the initial package. When the 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 6.5.1 was created on the WordPress build server, it was created from a previous revision of the 6.5 branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch".. As tags are treated as immutable, this meant that WordPress 6.5.1 could not be released.

As a follow-up, the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. team will work with the 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/ Systems team and update respective documentation as needed to ensure that everything is done to prevent similar situations.

Thanks to @audrasjb, @davidbaumwald, and @jeffpaul for pre-publication review.

#6-5, #6-5-x

Speculative Loading in WordPress

The WordPress Performance Team recently published a new plugin called โ€œSpeculative Loadingโ€ which enables a new technology of the same name to automatically prerender certain URLs on the page, which can lead to near-instant page load times. The functionality is powered by the Speculation Rules 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., a new web API that allows defining rules for which kinds of URLs to prefetch or prerender.

Please install and test 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. to provide feedback to inform further improvements before a potential consideration to include such a feature in WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. You can install the plugin by searching โ€œspeculative loadingโ€ in WP Adminadmin (and super admin), or via the Performance Lab plugin.

A brief history of prefetch and prerender in WordPress

WordPress core has for several years provided a simple Resource Hints API which allows injecting <link> tags into the HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. document that can be used to prefetch or prerender certain resources, among other actions. While prefetching can be useful for certain sub-resources of an HTML document, such as third-party script providers, prerendering goes as far as processing the resource and already performing some rendering offscreen and thus can be useful for entire web pages.

However, using the approach of injecting link[rel="prefetch|prerender"] tags is not very flexible, as the URLs to prefetch or prerender need to be defined as soon as the HTML is loaded. Providing a <link> 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 every potential anchor link a user may click on the page would be wasteful, while not providing any misses a great opportunity for performance optimization. So far, solutions like Quicklink could be used to dynamically insert <link> tags to prefetch resources in the userโ€™s viewport, which is more flexible, but still far from ideal as it may still excessively prefetch too many resources and requires a 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 library.

More importantly though, link[rel="prerender"] does not actually support prerendering, as the โ€œprerenderโ€ value is in fact used for something called NoState Prefetch, which means it is still only prefetching certain resources rather than prerendering them, which for instance would include running JavaScript. Last but not least, the โ€œprerenderโ€ value is deprecated at this point.

Introducing the Speculation Rules API

The Speculation Rules API is a new web API that solves the above problems. It allows defining rules to dynamically prefetch and/or prerender URLs of certain structure based on user interaction, in 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. syntaxโ€”or in other words, speculatively preload those URLs before the navigation. This API can be used, for example, to prerender any links on a page whenever the user hovers over them. Also, with the Speculation Rules API, โ€œprerenderโ€ actually means to prerender the entire page, including running JavaScript. This can lead to near-instant load times once the user clicks on the link as the page would have most likely already been loaded in its entirety. However that is only one of the possible configurations.

The following code example shows the general syntax of the Speculation Rules API JSON spec and outlines a configuration where any links other than WP Admin or login URLs are prerendered.

<script type="speculationrules">
{
	"prerender": [
		{
			"source": "document",
			"where": {
				"and": [
					{
						"href_matches": "/*"
					},
					{
						"not": {
							"href_matches": [
								"/wp-login.php",
								"/wp-admin/*"
							]
						}
					}
				]
			},
			"eagerness": "moderate"
		}
	]
}
</script>

The Speculation Rules API allows defining URL patterns for which kind of URLs should be eligible for speculative loading. Rules can be configured to either prefetch or prerender certain URLURL A specific web address of a website or web page on the Internet, such as a websiteโ€™s URL www.wordpress.org patterns. A so-called โ€œeagernessโ€ value can also be specified which dictates how eagerly the prefetching or prerendering should be applied. For example, a value of โ€œmoderateโ€ triggers the speculative loading when the user hovers over the link. A value of โ€œconservativeโ€ delays this until the user clicks on the link (which still provides a decent performance benefit), while a value of โ€œeagerโ€ acts as soon as there is the slightest suggestion a user may click the link. Note that caution is advised with the โ€œeagerโ€ configuration in particular as it increases the likelihood of loading URLs wastefully.

Browser support

While the Speculation Rules API has been available in Chrome and Edge since version 109 in general, the particular subfeature needed to unlock the aforementioned functionality is called โ€œdocument rulesโ€, which was only recently added in version 121. This post describes the latest enhancements to the API in more depth.

In other words, at the time of writing this post end users will need to use either Chrome 121+ or Edge 121+ to get the benefits of this feature. However there are no adverse effects for users on other browsers, as this is a progressive enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature.. Therefore using the Speculation Rules API on your website is safe regardless of the user base.

The Speculation Rules API was presented at the W3C web standards conference TPAC 2023, with positive reception. At this point, the standard is in draft stage. Positions regarding the API by Firefox and Safari have been requested. To keep track of specifically the required subfeatures for the functionality outlined in this post, you can refer to this โ€œCan I useโ€ table.

The Speculative Loading WordPress plugin

As mentioned in the beginning of this post, the WordPress Performance Team recently published a new feature plugin โ€œSpeculative Loadingโ€ which enables speculative loading of other frontend URLs linked on the page. It inserts a JSON script similar to the previous code example. By default, any URLs linked on the page are prerendered with an eagerness configuration of โ€œmoderateโ€, which typically triggers when hovering over a link. As such, you donโ€™t need to do anything after activating the plugin: it just works out of the box. The plugin also provides a few customization options to tweak the behavior to the site ownerโ€™s preference.

The Speculative Loading pluginโ€™s settings UIUI User interface

The default behavior can be modified via a new โ€œSpeculative Loadingโ€ section in the Settings > Reading screen. For example, if the site is using JavaScript that is not yet adapted for being loaded while prerendering, the plugin could be configured to only prefetch documents. One could set the eagerness to โ€œconservativeโ€ to reduce the likelihood of URLs being loaded without the user navigating to them. Or one could set it to โ€œeagerโ€ to increase the chance of the speculative loading already being completed by the time the user lands on the linked URL, which however runs at the risk of wastefully loading several resources. The default of โ€œmoderateโ€ strikes a good balance between sustainability and performance.

The rules for which kinds of URLs to speculatively preload can be customized using a filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. called โ€œplsr_speculation_rules_href_exclude_pathsโ€. For example, plugins that add URLs to a WordPress site which modify user state just from being loaded could use that filter to exclude those URLs from being prerendered or prefetched.ย 

Here is a code example which would would ensure that URLs like https://example.com/cart/ or https://example.com/cart/foo/ would be excluded from prefetching and prerendering:

<?php

add_filter(
    'plsr_speculation_rules_href_exclude_paths',
    function ( $exclude_paths ) {
        $exclude_paths[] = '/cart/*';
        return $exclude_paths;
    }
);

Please refer to the pluginโ€™s FAQ for details on the filter.

Potential next steps

At the moment, the plugin should be used to test the feature, and the Performance Team is eager to receive feedback as well as analyze the pluginโ€™s performance benefits on load times.

Down the road, as the browser API and the plugin mature, the possibility of including the feature in WordPress core will be explored. However, in order to get there, additional feedback is needed.

Testing and feedback

Your testing and feedback is crucial to improve the feature ahead of exploring its potential usage in WordPress core. Please consider the following ways to help:

The WordPress performance team is excited to learn more about how the Speculation Rules API is being used in WordPress sites. Please try the plugin and share your feedback!

Props @adamsilverstein @domenicdenicola @jeremyroman @swissspidy @tunetheweb @tweetythierry @westonruter for review and proofreading.

#feature-projects, #performance, #performance-lab, #speculative-loading

Dropping support for PHP 7.0 and 7.1

Support for PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher 7.0 and 7.1 will be dropped in WordPress 6.6, scheduled for release in July 2024. The new minimum supported version of PHP will be 7.2.24. The recommended version of PHP remains at 7.4 or greater.

WordPress currently supports PHP version 7.0 or greater. The minimum supported version was last adjusted in WordPress 6.3 in August 2023, and since then usage of PHP 7.0 and 7.1 has dropped to a combined 2.45% of monitored WordPress installationsย as of April 2024.

Thereโ€™s no concrete usage percentage that a PHP version must fall below before support in WordPress is dropped, but historically the project maintainers have used 5% as the baseline. Now that usage of PHP 7.0 and 7.1 combined is well below that at 2.45%, the process to increase the minimum supported PHP version in this release can move forward.

The benefits to increasing the minimum supported PHP version manifest over time and in multiple places, including within 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. and theme ecosystem, within the long term perception of the WordPress project, within developer relations, and over time within the WordPress codebase and its developer tooling.

Discussion around this minimum version bump can be found here on the Trac ticket.

What about PHP 8?

WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. is compatible with PHP 8.0 and 8.1 with exceptions. Support for PHP 8.2 and PHP 8.3 is considered 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. since WordPress 6.4. Please see the PHP Compatibility and WordPress Versions page in the handbook for full information.

What about security support?

Sites that are running PHP 7.0 or 7.1 will remain on the 6.5 branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch". of WordPress which will continue receiving security updates as it does currently. The current security policy is to support WordPress versions 4.1 and greater.

What about 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/ plugin?

The Gutenberg plugin, which is used for development 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, has a separate release schedule from WordPress core and officially supports the two most recent releases of WordPress. The Gutenberg development team will likely also increase the minimum supported version of PHP to 7.2 in time for WordPress 6.6. See this issue on the Gutenberg repo for when this was last changed in WordPress 6.3.

Going forward

There are no plans to bump the minimum supported PHP version on a schedule. The core team will continue to monitor usage of PHP versions and work with the hosting team to encourage users and hosting companies to upgrade their versions of PHP as swiftly as possible. The 5% usage baseline will continue to be used for the foreseeable future.

The PHP usage stats as of April 2024 look like this:

  • 8.3: 1.20%
  • 8.2: 12.07%
  • 8.1: 16.34%
  • 8.0: 12.25%
  • 7.4: 42.80%
  • 7.3: 4.79%
  • 7.2: 3.80%
  • 7.1: 0.95%
  • 7.0: 1.50%

Update PHP today

If you need more information about PHP or how to update it,ย check out this support article that explains more and guides you through the process.

Props to all those that have contributed to this discussion recently. Thanks to @chanthaboune for feedback and proof-reading this post.

#6-6, #dev-notes, #php

Performance Chat Agenda: 9 April 2024

Here is the agenda for this weekโ€™s performance team meeting scheduled for Apr 9, 2024 at 15:00 UTC.

  • Announcements
    • Welcome to our new members of #core-performance
    • Plan to launch 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. version 3.0.0 on Mon April 15
  • Priority items
    • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
      • Current release (6.6)
      • Future release
    • Performance Lab plugin (and other performance plugins)
      • Open discussion regarding streamlining PL plugin and other standalone plugins #1061
    • Active priority projects
      • INP research opportunities
      • Improve template loading
  • Open floor

If you have any topics youโ€™d like to add to this agenda, please add them in the comments below.


This meeting happens in the #core-performance channel. To join the meeting, youโ€™ll need an account on the Make WordPress Slack.

#agenda, #meeting, #performance, #performance-chat

Conducting WordPress performance research in the field

Over the past few years, several Make CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. posts, for example the 2023 performance retrospective, have referenced field data based on how real users experience millions of real WordPress sites. Such field data can help gather metrics of many different kinds, such as adoption of a feature or even its performance impact. As such, they can be instrumental in demonstrating the success of or potential concerns about a feature or enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature..

Gathering this data can be accomplished using public datasets like those from HTTP Archive and the Chrome User Experience Report (CrUX). However, as it requires writing BigQuery queries, getting the data may not be trivial as it is a separate technology not relevant for WordPress core development or 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 development.

To provide a better starting point for those new to BigQuery, HTTPHTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. Archive, and CrUX, members of the WordPress Performance Team and HTTP Archive have collaborated on a tutorial and reference Colab.

Whether you are new to those technologies or whether you have already written a few BigQuery queries, the Colab provides an introduction and can help build more familiarity. It only assumes some familiarity with SQL in general, such as from writing custom database queries in WordPress. The Colab comes with several queries, alongside their results, which can be used as a reference, and covers use-cases relevant to WordPress core development as well as plugin and theme development. It can be considered a โ€œliving resourceโ€, i.e. expect for it to be updated and expanded in the future.

Other than this post, you can also find the Colab linked from a new Make Performance Handbook article on gathering WordPress performance data in the field.

If you are interested in field research around WordPress sites, you may want to take a look and work through the Colab. As it contains a lot of content, please feel free to work through it in multiple sessions.

#analysis, #core, #core-web-vitals, #performance, #plugin, #theme

Developer Blog editorial meeting summary, April 4, 2024

Summary of the WordPress Developer Blogblog (versus network, site) meeting, which took place in the ย #core-dev-blog channel on 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/. Start of the meeting in Slack.

Attendees: @greenshady, @matteoenna, @ironnysh, @colorful-tones, @magdalenapaciorek, @bph (as facilitator),

Last meeting notes: Developer Blog editorial meeting summary, March 7, 2024

Updates on the site

Authors reported a few hiccups with the code 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.. As soon as you wanted to attach a programming language for color coding, extraneous <br> tags appeared and rendered the code block useless. @ndiego, @greenshady and the #meta team are working on it to get this fixed asap.

Newly published post since the last meeting:

Since the last meeting, we published quite a list of articles, and we onboarded new writers and received support from more reviewers. Three first time writers with @meszarosrob, @jsnajdr and @beafialho Thank you! ๐ŸŽ‰

Huge โ€œThank youโ€ to the writers and reviewers for bringing fabulous content to WordPress!

Project Status

Ready to for publishing

Reviewsย needed

In Progress:

Post on the To-do-list, assigned to writers.

Topics still in need of a writer

If you are interested in taking on a topic from this list or know someone who would be a good person to writer about them, comment on the Issue or pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test itโ€™s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of โ€œPing me when the meeting starts.โ€ @bph in slack either in the #core-dev-blog channel or in a DM.

New Topics approved

@greenshady mentioned:

โ€œThereโ€™s one other topic from last month that was not formally approved,ย @bph. I feel like with the additional info, we should probably take a look at it. (sorry for not bringing this up earlier):ย https://github.com/WordPress/developer-blog-content/discussions/230.โ€

There were no clear approval signals and seems the topic still needs clarification and will be revisited for next meeting.

Open Floor

Some clarification on the Playground articles/topics:

We originally had the topic approved:How to build a theme demo with WP Playground blueprints
Ronny took it on and wrote a fabulousย Introduction/Overview of WordPress Playground. There was some discussion on how to proceed next. The consensus was that the Introduction post was a great post to have on the Developer Blog as each subsequent Playground tutorial could refer to it and doesnโ€™t have to cover the basics anymore. Quite a few people from the Editorial group chimed in on the discussion and agreed to have it published. (note: the post is live now)

Ronny also wrote a Tutorial on How to use WordPress Playground for handovers. It was approved earlier. We still need a writer forย How to build a theme demo with WP Playground blueprintsย 

Next meeting: May 2, 2024, at 13:00 UTC in the #core-dev-blog channel

Props to @greenshady for review of the post.

#meeting, #summary