Presence API Feature Plugin

The Presence API is an experimental feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins that provides a system-wide awareness layer — who is logged in, what adminadmin (and super admin) screens they are on, and which posts they are editing.

This idea of presence I think is really cool and seeing where people are… you log into your WordPress, I see oh Matias is moderating some comments, Lynn is on the dashboard maybe reading some news… that idea of like you log in and you can kind of see the neighborhood of like who else is also there.

Matt Mullenweg, WordPress 7.0 planning session

Problems this aims to solve

  • There is currently no way to see who else is logged into the WordPress admin at the same time.
  • Posts being actively edited by another user are only surfaced when a lock collision occurs, by which point work may already overlap.
  • The post list provides no indication of which posts have active editors until a user tries to open one.

Here’s what that looks like in practice:

Try it yourself in WordPress Playground: 5-user blueprint. The blueprint creates 5 editor accounts with live presence spread across admin screens and posts, so the widgets, admin bar, and post list are populated the moment Playground boots — no second browser or incognito window needed.

See it at scale: 40-user blueprint. Same setup, 40 seeded editors — useful for seeing how the widgets, admin bar, and post list handle density.

What 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. provides

  • Dashboard widgets: “Who’s Online” and “Active Posts”
  • Admin bar online indicator with avatarAvatar An avatar is an image or illustration that specifically refers to a character that represents an online user. It’s usually a square box that appears next to the user’s name. stack for on-screen presence
  • Post list “Editors” column
  • Users list “Online” 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.
  • REST endpoints and WP-CLIWP-CLI WP-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/ commands
  • Post-lock bridge (coexists with existing _edit_lock behavior)

All features are gated on the edit_posts capabilitycapability 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).. Full technical details are in the GitHub repository.

Background

During WordPress 7.0 development, discussion in #64696 identified that storing high-frequency ephemeral data in shared tables causes persistent cache invalidation site-wide. This feature plugin was built to test that workload independently using a dedicated ephemeral data table with a 60-second TTL. Data flows through the existing Heartbeat API. The plugin was presented at a coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. dev chat and subsequently transferred to the WordPress 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/ organization. It was submitted to 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/ plugin directory on April 6, 2026.

Feedback welcome

This plugin is experimental. Feedback on the following is especially helpful:

  • Are the UIUI User interface surfaces (widgets, admin bar, post list) useful as presented?
  • Are there admin screens or workflows where presence would be valuable?

Discussion and development: #feature-presence-api on 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/

Bug reports and discussion: GitHub Issues

Thank you to @jorbin and @desrosj for helping to stand up this feature plugin.

Props @peterwilsoncc, @mindctrl, @czarate, @davidbaumwald, @dd32, @maxschmeling, and @westonruter for the architectural discussion in #64696 that informed this work.

#performance, #presence-api