The WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. development team builds WordPress! Follow this site for general updates, status reports, and the occasional code debate. There’s lots of ways to contribute:
Found a bugbugA 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.?Create a ticket in the bug tracker.
The full chat log is available beginning here on Slack.
WordPress Performance TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
@westonruter shared that, as of r64585, eliminating script/style concatenation has landed in WordPress and is included in the 7.2-beta1 release. This retires the use of load-scripts.php and load-styles.php and closed more than 10 Trac tickets, several of which were over 10 years old.
Script/style concatenation was only used in the login/adminadmin(and super admin) for coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.’s own assets. It served its purpose, especially for HTTPHTTPHTTP 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./1.1, but WordPress 7.2 will use a more modern and performant approach where blocking scripts and styles known to be used on the next screen are prefetched. This approach landed recently in r64120.
The full chat log is available beginning here on Slack.
WordPress Performance TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
@westonruter shared that prefetching has finally been committed in changeset 64120. The next step is to default script and style concatenation to off outside development environments in PR #13090. After that, the plan is to remove load-scripts.php and load-styles.php, along with the concatenation and compression logic that has been problematic for many years.
Open Floor
@westonruter noted performance gains in PHPStan 2.3.0: a full uncached analysis of WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. went from 60 seconds to 8 seconds. He shared the PHPStan 2.3.0 release post.
An update on the Presence APIfeature pluginFeature PluginA plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins, announced in April. Here’s everything that’s shipped since then.
Current version: 0.14.0. Requires WordPress 7.0 and PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher 7.4.
Post locks live in the presence table, so refreshing one no longer bumps the posts cache key.
Every avatarAvatarAn 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. now requests the right resolution for retina screens (#481).
The “someone else updated this” banner shows up again correctly if you dismiss it and someone edits again (#371).
Keyboard users can reach every item in the adminadmin(and super admin) bar menu, and focus stays put when the dashboard widgets refresh (#271, #275, #390).
One tab now polls and shares results with the rest, background tabs stop sending presence, and idle screens back off automatically (#300, #307, #675).
The Editors column and the Online users list refresh on each heartbeat (#604, #606).
Site Health tells you when Heartbeat can’t keep presence current (#544).
Recording and privacy
Recording is on by default. Switch it off for one site on Settings > General, or for every site at once on Networknetwork(versus site, blog) Admin > Settings. If either switch is off, recording is off, and post locks keep working either way (#429, #442). A privacy policy section, exporter and eraser cover presence data too (#449).
Each site has its own switch.The network switch overrides every site’s own setting when it’s off.
From WP-CLIWP-CLIWP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/https://make.wordpress.org/cli/, run wp presence recording set off, or add --network for the whole network.
MultisitemultisiteUsed to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site
Network Admin now shows who’s online across every site, with matching REST and WP-CLI. It’s on by default for networks below wp_is_large_network(), and the wp_presence_network_aggregation_enabledfilterFilterFilters 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. turns it on or off (#332, #365).
Each site writes a summary row, so Network Admin reads one table instead of every site’s.
Post locks
Post locks now live in the presence table instead of post metaMetaMeta 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., so refreshing a lock no longer invalidates every cached post query on sites with a persistent object cache (#551). Locks keep working with recording switched off (#644).
Every post type
Presence works on every post type with an editor, including what the Site Editor has open (#631, #638). Roles that can edit only pages or a custom post typeCustom Post TypeWordPress can hold and display many different types of content. A single item of such a content is generally called a post, although post is also a specific post type. Custom Post Types gives your site the ability to have templated posts, to simplify the concept. get presence too (#637).
Who sees what
Everyone online still appears in the admin bar, but where they are is now behind the view_presence_locationcapabilitycapabilityA 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)., which maps to list_users by default (#571). Everyone can always see their own. The admin bar shows whole faces beside My Account (#565, #574). A face is ringed in the person’s blockBlockBlock 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 color only when you’re both in the same post, the way the editor shows it, and in your admin color scheme everywhere else (#707).
With it, administrators see where each person is.Without it, editors see who is online but not where.
AI agents
An AI agent editing over REST or MCP sends no Heartbeat, so it wouldn’t show up on its own. As of 0.13.0, each save writes a presence row for it in that post’s room, and the row expires about 75 seconds after its last save by default. The row appears in the admin bar and the Editors column with an Agent badge (#653, #697, #701).
The pluginPluginA 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. doesn’t decide who is an agent. It asks the Agent Users plugin through wpai_is_agent_user() when that’s loaded, and any plugin can answer through the wp_presence_is_agent_user filter. With neither, nobody is labeled.
Performance
In 0.12.2, each presence query is read once per request until the table changes, which took a Users screen heartbeat from 6 presence reads to 2 (#678). The plugin also stopped checking its tables on every admin page (#657, #682), and only one visible tab per site sends the Heartbeat pingPingThe 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.” (#675).
For developers
As of 0.14.0, REST presence entries no longer include color, and wp_presence_get_user_color() returns the block editor’s color for a user ID instead of a stored one (#707).
New functions: wp_presence_exchange(), wp_presence_leave() and wp_presence_is_available(), documented in the PHP API section of the README (#546, #519).
Each row carries its own expiry, and reads filter by client ID prefix in SQL (#541, #530).
An admin bar debugger replaces the Dashboard widgetWidgetA 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., and plugins can add their own rows to it (#652, #666). It’s a development tool: it loads only with WP_DEBUG on and isn’t in the WordPress.orgWordPress.orgThe 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/ download, so use a git checkout or the plugin’s Live Preview in Playground.
Gutenberg Sync Engines, a plugin for trying server-aware real-time collaboration, keeps who’s in the editor in the presence table when Presence APIAPIAn 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. is active too. To see it, launch the RTC Playground, which opens a post shared with two seeded collaborators, and open the debugger: their rows start with gse-.
101 people online, each row showing its client ID and seconds since last seen.
The full chat log is available beginning here on Slack.
WordPress Performance TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
@westonruter shared the tickets in the next major and minor milestones for reference. He noted that #57548 is still high on his radar.
Performance Lab PluginPluginA 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 other performance plugins)
@westonruter noted that there is a backlog of Performance Lab work sitting there for the team to hack on, but he has not had time over the past couple of weeks.
The full chat log is available beginning here on Slack.
WordPress Performance TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
@spacedmonkey shared ongoing work to improve query caches and requested more eyes on the work. The idea came from a chat with @peterwilsoncc on the RTC ticketticketCreated for both bug reports and feature development on the bug tracker.#65487, and @spacedmonkey said the idea has legs. PR #12220 has some test coverage, and all other query caches introduced already have test coverage. More tests could always be added, but testing remains tricky because the change does not introduce new functionality. @spacedmonkey requested feedback from @westonruter, @mukesh27, and @adamsilverstein.
@westonruter said PR #13084 for elimination of script/style concatenation in favor of prefetch remains at the top of performance radar. No chance to pick up the work again since WCUS, but the PR is believed to be almost ready for merge.
@b1ink0 is reviewing and testing the view transition PR #11912. @westonruter responded that should make adminadmin(and super admin) navigation feel much better.
The full chat log is available beginning here on Slack.
WordPress Performance TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
@mukesh27 shared a performance regressionregressionA 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. found in WordPress 7.1 and reported as #65929 and asked anyone with time to take a look and said any review or feedback would be greatly appreciated.
@westonruter shared that WCUS Contributor DayContributor DayContributor 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://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/ was formatted like a hackathon this year. His team worked on eliminating script and style concatenation in favor of prefetching scripts and styles likely to be used on the next screen. For example, the login screen prefetches the scripts and styles used on the dashboard, while the dashboard or edit posts list screen prefetches styles used in the post editor. They saw promising performance improvements, including a greater than 70% reduction in LCP when accessing the dashboard from the login screen. The PR #13084 is in progress and ready for early review and testing. He added that the biggest benefit is eliminating script and style concatenation, which is the source of many bugs. In his view, the performance benefit is a bonus.
Performance Lab PluginPluginA 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 other performance plugins)
@westonruter re-shared that the PR for the next round of Performance Lab plugin updates is ready for review and testing: PR #2639. ZIPs are available at (comment). He noted that the release includes strict_types, so it warrants extra testing, and also includes several housekeeping changes intended to improve the release process. The PR already has approvals, but he was not sure whether smoke testing had been completed for each build. If that could be done that day, he said he would feel comfortable going ahead with the release
Open Floor
@westonruter shared that he is coming off a very busy summer of travel and CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. security work. He is finally back home and can start catching up. His security work will continue, but hopefully at a more managed pace. He noted that there are many PR reviews needed.
@mukesh27 added that there are also Core commits. @westonruter responded that commits are now cheap, while reviews are hard.
The full chat log is available beginning here on Slack.
WordPress Performance TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
@westonruter said he would love to get script/style concatenation ripped out in favor of using preloads, which would be a big improvement to CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress., especially from a tech debt perspective.
Performance Lab PluginPluginA 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 other performance plugins)
@westonruter shared that he pushed out a security fix for Optimization Detective the previous week. That process brought to light a deficiency in the deployDeployLaunching code from a local development environment to the production web server, so that it's available to visitors. script where it could inadvertently try to publish a release for an older version, so he opened PR #2620.
The full chat log is available beginning here on Slack.
WordPress Performance TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
@westonruter highlighted #65634, a minor improvement to the development environment to make it easier to do performance tests so it is more reflective of an actual normal environment, with a small patchpatchA special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. ready for review.
For #65215, @westonruter shared that there is some feedback on the PR #11790 that has not been actioned yet.
Performance Lab PluginPluginA 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 other performance plugins)
@westonruter highlighted PR #2601, which updates wp-coding-standards/wpcs to 3.4.1, and shared that there was an important security release for WPCSWordPress Community SupportA public benefit corporation and a subsidiary of the WordPress Foundation, established in 2016.. While it has been applied to the Performance repo, anyone with other repositories using an older version should update as soon as possible.
@mukesh27 shared that work has been ongoing over the past few weeks on accurate sizes for the Gallery blockBlockBlock 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. and that the full PR will soon be ready for review.
@b1ink0 asked for feedback on a comment in PR #2336. @westonruter shared that it has been added to saved items.
The full chat log is available beginning here on Slack.
WordPress Performance TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
@westonruter shared a late submission for inclusion in WordPress 7.1 and requested reviews for PR #12514, which provides a mechanism for hosting providers to change the default Speculative Loading eagerness and mode without requiring an mu-pluginPluginA 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..
@swissspidy shared that CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. was a bit hesitant in the past to introduce new constants, let alone environment variables, and asked whether this is something hosts could control with an mu-plugin instead.
@westonruter replied that there is such an environment variable and constant for wp_get_environment_type().
@westonruter shared that configuration of Realtime Collaboration was also being done via environment variables.
@westonruter shared that the reason for the environment variable is explained in the Realtime Collaboration discussion, where a host may not be able to control all the PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher being used in a hosted site and hosts could potentially control the PHP being used but may not “manage” their hosted WordPress sites, so doing so would be a violation of sorts of what their customers expect.
Performance Lab Plugin (and other performance plugins)
@westonruter shared that there are some new PRs that need reviewing, but has not had time to review them yet due to work on Core tickets and expressed hope that there would be more time available for reviews within the next week.
The full chat log is available beginning here on Slack.
WordPress Performance TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
@westonruter shared the current performance-focused Trac report and noted that there looks to be nothing for 7.0.1.
@westonruter shared that the tickets in the “Awaiting Review” queue need a bugbugA 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. scrub and suggested that one could be held the following week.
Performance Lab PluginPluginA 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 other performance plugins)
@westonruter shared that the plugin releases the team had wanted to do a couple of weeks earlier should be completed.
@westonruter shared that if PR #2540 can be finalized, it could be included in the release.
@nickchomey shared that @westonruter had reviewed a recent PR and plans to look at and address the feedback later that day.
You must be logged in to post a comment.