Skip toolbar
WordPress.org

Make WordPress

Teams

  • Core

    The coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. team makes WordPress. Whether you’re a seasoned PHPPHP PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. https://www.php.net/manual/en/index.php, HTMLHTML HTML is an acronym for Hyper Text Markup Language. It is a markup language that is used in the development of web pages and websites., 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 or CSSCSS CSS is an acronym for cascading style sheets. This is what controls the design or look and feel of a site. developer or are just learning to code, we’d love to have you on board. You can write code, fix bugs, debate decisions, and help with development.

  • Design

    The design group is focused on the designing and developing the user interface. It’s a home for designers and UXers alike. There are regular discussions about mockups, design, and user testing.

  • Mobile

    The mobile team builds the iOSiOS The operating system used on iPhones and iPads. and Android apps. Lend them your Kotlin, Swift, or ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org Native skills. The team also needs designers, UXUX UX is an acronym for User Experience – the way the user uses the UI. Think ‘what they are doing’ and less about how they do it. experts, and testers to give users a smooth experience on every device.

  • Accessibility

    The a11yAccessibility 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) group provides 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) expertise across the project. They make sure that WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and all of WordPress’ resources are accessible.

  • Polyglots

    WordPress is used all over the world in many different languages. If you’re a polyglot, you can help by translating WordPress into your own language or contributing to the GlotPress project, making translations easier and more effective for everyone.

  • Support

    Answering questions in the support forums, IRC, or 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/ is one of the easiest ways to start contributing. Everyone knows the answer to something! Since the forums run on bbPress, you can also contribute by helping make the software behind them even better.

View all teams and their meetings

Latest activity

See the latest happenings across the entire project.

Aki Hamano Core ·

New Block Support in WordPress 7.2: Text Shadow (textShadow)

WordPress 7.2 introduces a new textShadow typography 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. support, along with text shadow presets and a user interface in both the block inspector and Global Styles. The Paragraph and Heading blocks are the first coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blocks to adopt it.

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/ issue: #47904 | PR: #79584

Background

WordPress 7.1 added the ability to declare a text-shadow value under styles.typography in theme.json (#73320, see the Text Shadow Support in Global Styles dev notedev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase.). That first step covered theme.json styling only. There was no control in the editor, no preset system, and no way to set a shadow on an individual block.

WordPress 7.2 builds on this foundation. Text shadows now work like font sizes and shadows: themes define presets, users pick or create them in Global Styles, and blocks that opt in get a control in the Typography panel.

How to opt in

In WordPress 7.2, the Paragraph (core/paragraph) and Heading (core/heading) blocks support text shadow by default. Other blocks can opt in through supports.typography.textShadow in their block.json:

{
	"supports": {
		"typography": {
			"textShadow": true
		}
	}
}

When a block declares support, a Text shadow control is added to the Typography panel of the block inspector, letting users choose from the predefined text shadow presets:

Text shadow control in the block sidebar with preset options

The control is not shown by default. Users can reveal it from the Typography panel’s options menu, or a block can show it automatically through __experimentalDefaultControls.

{
	"supports": {
		"typography": {
			"textShadow": true,
			"__experimentalDefaultControls": {
				"textShadow": true
			}
		}
	}
}

When a text shadow preset is applied to a block, its slug is stored in the textShadow attribute and output as a CSSCSS Cascading Style Sheets. class:

<!-- wp:paragraph {"textShadow":"strong"} -->
<p class="has-strong-text-shadow">Hello World</p>
<!-- /wp:paragraph -->

Defining presets

WordPress ships with two default text shadow presets, Light and Strong. Like font size and color presets, these can be managed in Global Styles (Typography > Text shadow presets), where users can change the styles of the default presets or add their own custom presets.

Text shadows panel in Global Styles

Themes can also define their own presets in theme.json with settings.typography.textShadowPresets. Each preset needs a name, a slug, and a textShadow value:

{
	"$schema": "https://schemas.wp.org/trunk/theme.json",
	"version": 3,
	"settings": {
		"typography": {
			"textShadowPresets": [
				{
					"name": "Soft",
					"slug": "soft",
					"textShadow": "1px 1px 2px rgba(0, 0, 0, 0.3)"
				},
				{
					"name": "Glow",
					"slug": "glow",
					"textShadow": "0 0 8px rgba(255, 215, 0, 0.8)"
				}
			]
		}
	}
}

Each preset outputs a --wp--preset--text-shadow--{slug} CSS custom property and a .has-{slug}-text-shadow class. Theme presets are shown alongside the default presets.

The Text shadow control lists all available presets and a None option. When there are 7 or more presets, it switches from a list to a compact dropdown.

The styles.typography.textShadow property introduced in WordPress 7.1 now also accepts a preset reference, such as var:preset|text-shadow|light. For more examples of applying text shadows globally, per block, or per element, see the Text Shadow Support in Global Styles dev note.

Values set in Global Styles override theme defaults, and values set on a block instance override both, following the same cascade as other typography styles.

Disabling text shadow

To hide the default presets, set defaultTextShadowPresets to false. To remove the feature entirely, also set textShadow to false:

{
	"version": 3,
	"settings": {
		"typography": {
			"textShadow": false,
			"defaultTextShadowPresets": false
		}
	}
}

Further reading

Props to @ramonopoly for review.

#7-2, #dev-notes, #dev-notes-7-2

Lena Morita Core ·

Editor components updates in WordPress 7.2

MigrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. from Emotion to SCSS Modules

WordPress 7.2 completes the migration from Emotion to SCSS Modules in @wordpress/components, continuing the work described in the WordPress 7.1 dev note. This removes the package’s remaining Emotion dependencies and reduces styling runtime and build overhead. Most consumers using documented props and className will not need changes. Code that relied on Emotion-specific behavior should review the following migration details. (#85022)

Replace the legacy css prop on View

__experimentalView still accepts the css prop for compatibility, but the prop has no effect. Use style for inline declarations or className for stylesheet rules, including pseudo-classes and media queries.

import { __experimentalView as View } from '@wordpress/components';

// Before.
<View css={ { padding: 16 } } />;

// After.
<View style={ { padding: 16 } } />;

Also review custom selectors and tests that depend on generated Emotion classes or internal markup. Use classes you control or documented component selectors.

Combine Emotion fragments whose declaration order matters

Components no longer performs Emotion style merging when joining class names. If your styles depend on overlapping declarations, shorthand/longhand order, or matching nested selectors, combine those fragments in a single css() call before passing them to cx():

import { css, cx } from '@emotion/css';

const className = cx(
	css( baseStyles, isExpanded && expandedStyles ),
	consumerClassName
);

Independent classes do not need this treatment. Applications can continue using Emotion without adopting SCSS Modules.

Provide an Emotion cache for other documents

__experimentalStyleProvider no longer manages an Emotion cache. If your @emotion/react or @emotion/styled components relied on it to insert styles into an 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. or another document, provide a cache targeting that document’s <head>:

import createCache from '@emotion/cache';
import { CacheProvider } from '@emotion/react';
import { __experimentalStyleProvider as StyleProvider } from '@wordpress/components';

// Create once for each destination document, outside rendering.
const emotionCache = createCache( {
	key: 'my-plugin-iframe',
	container: targetDocument.head,
} );

// Wrap the content rendered into that document.
<StyleProvider document={ targetDocument }>
	<CacheProvider value={ emotionCache }>
		{ children }
	</CacheProvider>
</StyleProvider>;

Create the cache after the destination document is ready and reuse it while that document remains the same. Portals into another document also need a cache for their destination.

Keep StyleProvider for package CSSCSS Cascading Style Sheets. Module registration, along with the package and design-token stylesheets your application requires. CSS Module styles still use runtime <style> injection.

@emotion/css has a separate cache that ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org’s CacheProvider does not configure. Use @emotion/css/create-instance with the destination <head> as its container, then generate classes with that instance’s css and cx functions.

If your application requires a CSP nonce, configure it on your own Emotion cache. This does not add nonce support to CSS Module style injection. See the cross-document setup guidance for package styles and design tokens.

Review props, dependencies, and build configuration

  • __unstableMotion props: Components no longer supplies Framer Motion’s optional @emotion/is-prop-valid dependency. Where that validator previously ran, unknown DOM props may now be forwarded. 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. application-only props before they reach DOM elements, including inside custom React components. Framer Motion continues filtering its animation props.
  • Emotion dependencies: Declare any Emotion packages your application imports as direct dependencies. Components and DataViews no longer supply them transitively. Remove Emotion dependencies or compiler plugins only when your application, tests, and tooling no longer use them.
  • Custom builds: @wordpress/build no longer runs the automatic Babel pass specific to packages/components. Projects or forks that relied on it for Emotion transforms or project Babel configuration should run those transforms explicitly before @wordpress/build. (#84707)

After migrating, check custom styles and dynamic variants in the main document and any iframe or portal documents, including RTL layouts where relevant.

See the migration tracking issue for further details.


FontFamilyControl styling changes

Starting in WordPress 7.2, __experimentalFontFamilyControl from @wordpress/block-editor uses @wordpress/ui. Consumers with custom CSS overrides should review the following changes. (#84715)

What changed

The .block-editor-font-family-control root class remains available. Labels and selected hints now use these control-specific classes:

  • .block-editor-font-family-control__label
  • .block-editor-font-family-control__hint

The control no longer adds the following legacy classes:

  • .components-custom-select-control
  • .components-custom-select-control__item
  • .components-custom-select-control__item-hint
  • .components-custom-select-control__hint
  • .has-hint
  • .components-input-base
  • .components-input-control__container
  • .components-input-control__backdrop
  • .components-input-control__suffix
  • .components-input-control-suffix-wrapper
  • .components-base-control__label

Popup items now render outside the control root, so selectors that target them as descendants of .block-editor-font-family-control no longer match.

What to do

Update label and selected-hint overrides to use the control-specific classes above.

Custom options[].style now applies only to the option label. To style an entire popup item, supply options[].className and target that class directly in your stylesheet without relying on the item being inside the control root.


New presentation prop for palette swatches

ColorPalette, GradientPicker, and DuotonePicker in @wordpress/components now accept a presentation prop that controls swatch interaction and 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) semantics. (#82023)

The available values are:

  • "listbox", the default: Uses one tab stop, arrow-key navigation, and aria-selected to expose selection.
  • "toggle-buttons": Gives each swatch its own tab stop and exposes selection through aria-pressed.
  • "command-buttons": Gives each swatch its own tab stop without exposing selection state. Use this when activating a swatch performs an action, such as opening an editor.

Replace asButtons

The asButtons prop is deprecated but remains supported for backward compatibility.

  • Replace asButtons or asButtons={ true } with presentation="toggle-buttons".
  • Remove asButtons={ false } to use the default listbox presentation, or replace it with presentation="listbox".

When both props are supplied, presentation takes precedence.

The loop prop applies only to the "listbox" presentation. In "command-buttons" mode, activating a predefined swatch always calls onChange, even if value or selectedSlug already identifies that swatch.


Deprecated components

Starting in WordPress 7.2, the following components from @wordpress/components are deprecated, with removal scheduled for WordPress 7.4.

  • Animate: Write your own CSS animations, preferably using the motion tokens from @wordpress/theme. (#80931)
  • Divider (__experimentalDivider): Prefer a surrounding component’s Separator, such as Menu.Separator, when available. Otherwise write your own CSS, preferably using the design tokens from @wordpress/theme. (#83040)
  • Elevation (__experimentalElevation): Use the elevation tokens from @wordpress/base-styles. (#83269)
  • ResponsiveWrapper: Use the CSS aspect-ratio property. (#83347)
  • Scrollable (__experimentalScrollable): Write your own CSS. (#83273)
  • Surface (__experimentalSurface): Write your own background and border CSS, preferably using the design tokens from @wordpress/theme. (#80943)
  • Tip: Use Notice from @wordpress/ui. See the migration guide for the replacement composition. (#84197)
  • ZStack (__experimentalZStack): Write your own CSS. (#83344)

Co-authored by @0mirka00 and @mciampini.

Props to @aduth for review.

#7-2, #dev-notes, #dev-notes-7-2

Krupa Nanda Accessibility ·

Accessibility Team Meeting Notes: November 05, 2026

These is the bi-weekly notes for the 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) Team meeting that happens on alternate Thursday in #accessibility. You can read the full transcript here or see the full meeting schedule.

📣 Announcements

The following updates and announcements were shared:

Working Group Updates

1. WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and 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

  • WordPress 7.2 is nearing the end of its Beta phase. The remaining theme-related items are expected to be completed within the week.
  • There are currently 22 accessibility tickets open in the WordPress 7.2 milestone. Joe Dolson aims to resolve all remaining tickets by the Release CandidateRelease Candidate A beta version of software with the potential to be a final product, which is ready to release unless significant bugs emerge. (RCRelease Candidate A beta version of software with the potential to be a final product, which is ready to release unless significant bugs emerge.) phase.
  • A total of 41 accessibility tickets have already been closed during this release cycle.
  • Joe will also be reviewing the new default theme, drawing on his recent accessibility reviews of Twenty Twenty-Three through Twenty Twenty-Five.
  • Due to travel and other commitments, Joe will be unavailable for the next two Tuesday bug scrubs, including November 17. An alternative bug scrub may be scheduled to review new tickets during the RC phase and help prepare for WordPress 7.3.
  • Team members are welcome to volunteer to run the bug scrubs in Joe’s absence. Please comment on this post or in #accessibility if you are planning to facilitate the bug scrub.

2. Accessibility-ready Program

  • Joe has coordinated with Otto on the upcoming changes to accessibility-ready tag management in the Theme Directory.
  • The plan is to make the updated tag management process live as soon as possible while keeping all currently tagged themes visible initially.
  • Theme assignments will then be updated gradually as reviews are completed, rather than making a single change to the entire directory.
  • William Patton offered to help manage theme assignments once the updated process goes live. He also confirmed that he should have the necessary access to make these changes.
  • Having additional team members who can manage tag assignments will help distribute the work and keep the process moving.
  • The team hopes this will also help resume progress on the pending theme reviews.

3. Documentation About Web Accessibility

  • @rianrietveld is working on defining the 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. specification for migrating content from wpaccessibility.org into a format suitable for publication in 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/ Developer Hub.
  • The intention is to continue maintaining the primary documentation on wpaccessibility.org, where the team can provide a more accessible interface, while using a continuous integration process to keep the content synchronized with a WordPress.org-friendly format in the repository.
  • Once the specification is ready, development assistance will be needed to turn it into an actual migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. script.
  • Joe will review the documentation throughout November while Rian continues working on completing the remaining content.
  • The goal is to have the documentation largely ready by December.
  • The team can publish a call for development help once Rian gives the go-ahead and the API specification is finalized.

Open Floor

There were no additional questions or discussions during the open floor. As most participants were unavailable, the open floor was skipped for this meeting.

Thank you to @joedolson for sharing the working group updates and to everyone who continues to contribute to the WordPress Accessibility Team.

NOTE: If you’d like to have a topic added to the agenda for our next meeting, please mention it in the comments on an upcoming agenda.

Wishing everyone celebrating a happy Diwali and a prosperous New Year! ✨

#accessibility

Francisco Torres Team Updates ·

Plugins Team: 9 Nov 2026

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. Status Change Stats

  • Plugins requested : 1236
  • Plugins rejected : 57
  • Plugins closed : 75
  • Plugins approved : 960

Plugin Queue Stats (current)

  • Plugins in the queue (new and pending)* : 6026
    • (older than 7 days ago)** : 4688
    • (2026-11-02 – 2026-11-08) : 955
    • (new; not processed or replied to yet)* : 719
    • (pending; replied to)* : 5307
    • (pending; waiting on author)* : 4517
    • (pending; waiting on reviewer)* : 535
    • (pending; waiting on reviewer, email not yet sent)* : 255

Help Scout Queue Stats

  • Total Conversations: 2593
  • New Conversations: 1601
  • Customers: 2283
  • Conversations per Day: 324
  • Busiest Day: Monday
  • Messages Received: 1717
  • Replies Sent: 4513
  • Emails Created: 1274

* : Stat reflects current size of queue and does not take into account ‘date’ or ‘day’ interval
** : Stat reflects activity only within the ‘recentdays’ from today

#plugins

Rade Jekić Training ·

Meeting Agenda for November 10th, 2026

This week’s meeting will be held on Tuesday, November 10th, 2026, at 07:00 UTC. The meeting will be held on 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/, in the #training channel. Anyone is welcome to contribute by commenting in Slack threads during the meeting and in the days that follow. We’ll publish meeting notes by the following Tuesday to incorporate these asynchronous conversations as well.

This week’s meeting will be hosted by @rjekic.

1. Intro/Welcome

  • Welcome to all the new teammates who joined the Training Team this week!
  • Icebreaker – Do you have experience in creating content (video/audio/articles)?

2. Contributor Updates

  • What have you been working on, and how has it been going?
  • Anything you’ve accomplished since the last meeting?
  • Do you have any blockers?
  • Can other contributors or Training Team members help you in some way?

3. Open Discussions

  • If you have topics you’d like discussed in the meeting, please leave them as a comment on this post.
    • Have you tried new AI course created on the Learn platform?

4. News

  1. Meeting Note Takers
  2. Looking for feedback
  3. Looking for volunteers
    • Translation Review Volunteers: We have a lot of lessons translated into many beautiful languages, but we need someone to review them and give us their opinion about the translation quality and possible improvements. Join us 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/ by following this link: https://github.com/WordPress/Learn/issues?q=is%3Aissue+state%3Aopen+project%3AWordPress%2F104. Find the language you speak and know, and help us in the review phase. We do not want to leave all those translated lessons and courses in GitHub oblivion…
    • Content Review Volunteers: Volunteers are needed to review and identify content that should be updated or consolidated. Two groups are needed: one for the handbook and one for courses.
    • Lesson Thumbnails: Work has started on creating thumbnails for lessons that need them. Team members are welcome to contribute to the remaining thumbnails through GitHub Issue #3428.
    • Issue Cleanup: The team discussed organising the many open issues into smaller categories and reviewing them systematically.
      • Review Workflow: The proposed process is to review issues one by one, identify outdated or irrelevant items, suggest next steps, and add comments before closing or updating issues.
        • Good First Issues: Contributors can start with issues labeled Good First Issue, especially those related to content feedback, and follow the handbook guide for validating feedback.
        • Issue Categories: The team discussed starting with a specific categoryCategory The ‘category’ taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging., with Bug issues suggested as a priority. Other options include Needs Translation Reviewer, Unlabeled, Awaiting Triage, and Content Feedback.
        • Next Steps: Team members are encouraged to suggest which category should be reviewed first, after which the issues can be divided among contributors.
      • Goal: Work together to clean up and keep the repository organised.
  4. Updates from last week’s Triage Squad session
    • No triage squad meetings last week
  5. Other announcements and news

5. Come and Contribute

6. Contribution Acknowledgement

  • Badges awarded:
    • No badges awarded this week

7. Project updates

8. Upcoming Online Workshops

  • No workshop scheduled

ATIKUR RAHMAN

Thanks for sharing the meeting agenda!

I’m happy to be part of the Training Team. I’m interested in contributing to Bangla translation reviews, content reviews, and improving Learn WordPress resources.

Reply

tobifjellner (Tor-Bjorn “Tobi” Fjellner) Polyglots ·

List of Style Guides reworked November 2026

The list with links to glossaries and style guides per locale has been updated.

Previously, it used an HTMLHTML HTML is an acronym for Hyper Text Markup Language. It is a markup language that is used in the development of web pages and websites. table, which made it unnecessary hard to maintain the document.

The newer format makes the list easier to update, especially if we want to add any specific extra information, for instance a link to “Style guide for agents”. A bonus point is that it’s now possible to link directly to the anchor for your localeLocale Locale = language version, often a combination of a language code and a region code, for instance es_MX denotes Spanish as it’s used in Mexico. A list of all locales supported by WordPress in https://make.wordpress.org/polyglots/teams/’s section, like this: https://make.wordpress.org/polyglots/handbook/translating/glossaries-and-style-guides-per-locale/#sv_se

Things to do:

  • Check if your locale is included and if its links are the right ones.
  • If you’ve got documents that may be hard to reach or use (Google documents, WordPress CodexWordPress Codex Living online manual to WordPress.org https://codex.wordpress.org/, for instance) — consider moving them to a better place, like your locale’s /team subsite. Contact me (@tobifjellner) if you don’t have any such subsite or if you need access, and, obviously, if you need to add or update any information for your locale in the list

Kamran Abdul Aziz

Thanks, the new format is much easier to read and link to. I checked hi_IN: it only lists the glossary, and most of its 60 terms were added between 2015 and 2017, with only a handful since. There is no style guide yet. I’d be happy to help draft a glossary refresh, along with a Hindi style guide for human translators and one for agents, if the Hindi team would find that useful. What would be the best place to share the drafts so the team can review them first?

Reply

Deepak Kumar Test ·

Call for Testing: Presence API

The Presence 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. feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins team is preparing for a proposal to merge into WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. as the foundation for real-time awareness and modernized post locking.

We invite the community and the Make/Test team to test the admin interfaces and real-time interactions across typical admin workflows. Feedback is open through November 23, 2026.

What is Being Tested?

  • Real-Time Awareness: Live presence indicators across the admin toolbar, posts list, and user screens.
  • Modernized Post Locks: Post locks look and behave identically to standard WordPress core post locking, but their storage has moved off the _edit_lock post field and into the dedicated wp_presence table (#548).
  • Build Version: The Playground blueprints test the latest preview-main build (built from the main branch).

How to Test

You can test directly in your browser using WordPress Playground without any local environment setup:

Option A: Interactive Testing with Simulated Collaborators (Recommended)

This instance runs the companion presence-scenes tool, which simulates real-time virtual users editing posts and navigating the admin:

👉 Launch Playground with Simulated Collaborators

(The scene lasts under a minute. To replay it, open /wp-admin/edit.php?presence_scene=editing-together.)

Option B: Playground with Demo Data

This instance comes pre-seeded with 100 demo users and a few demo posts, along with a Demo bar to simulate saves from other users:

👉 Launch Playground with Demo Data

(Note: Because Playground stores site state locally in your browser storage, opening two separate browser windows or an incognito tab creates independent Playground sites. To test multi-user actions, please use the simulated collaborators in Option A or the Demo bar in Option B. Additionally, seeded demo users time out after ~2.5 minutes of inactivity; if this happens, simply relaunch the blueprint link to reseed).

Guided Test Tasks

Task 1: Admin Bar Real-Time Presence

Use Option A (Simulated Collaborators).

  1. Open wp-admin and find the faces and “N online” count next to Howdy in the toolbar.
  2. Observe the counter updating as simulated collaborators move across screens.
  3. Hover or use keyboard navigation (Tab) to open the presence menu.
  4. What to verify:
    • The faces and menu show other people (not you), and the “N online” count includes you.
    • User avatars and names are legible, tooltips render correctly, and keyboard focus works properly.
Desktop admin bar presence menu
Admin bar presence menu on desktop showing active collaborators.

Task 2: Posts List & “Editors” Column

Use Option A with the “Editing together” scene (/wp-admin/edit.php?presence_scene=editing-together).

  1. A few seconds after the scene starts, reload Posts > All Posts.
  2. Find Launch checklist, the post the collaborators are editing.
  3. What to verify:
    • The Editors column shows an 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 indicating active editors.
    • Hovering or navigating into the row with a keyboard reveals collaborator names.
    • On smaller screens (or responsive mobile view), avatars adjust without causing horizontal overflow.
Editors column with collaborator avatar stack
Editors column showing active collaborator avatar stack in the Posts list.

(Note: The simulated scene runs for under a minute. When the scene completes, it automatically cleans up its simulated users and deletes the “Launch checklist” post. Testers should act within this window, or replay the scene at any time by revisiting /wp-admin/edit.php?presence_scene=editing-together.)

Task 3: Post Locking and Takeover

Use Option A with the “Editing together” scene.

  1. In Posts > All Posts, click to edit a post that another collaborator is currently editing.
  2. Observe the post lock dialog.
  3. Click Take over.
  4. What to verify:
    • The lock dialog indicates that another user is currently editing the post.
    • Taking over closes the dialog and lets you edit the post.

(Note: If the scene finishes before you take over, the post will be deleted. Simply refresh /wp-admin/edit.php?presence_scene=editing-together to replay).

Task 4: Stale Screen Notification

Use Option B (Demo Data).

  1. Navigate to Settings > General.
  2. In the Demo bar at the top, click a Save as {name} button.
  3. What to verify:
    • A yellow stale-screen notification appears indicating that someone else has saved changes to this screen.
    • When dismissing the notice, keyboard focus smoothly moves to the screen heading.

(Note: The stale-screen notice is designed for individual edit screens and settings pages, not the main Posts list).

What to Check

  • 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): Can you navigate and operate all presence indicators using only a keyboard?
  • Responsiveness: Do views on phones or tablets display cleanly without broken layouts? (See #830 for reference phone layouts).
  • Usability: Are presence indicators informative without being distracting?
Phone admin bar compact user icon and online count
Phone admin bar: compact user icon and online count (<600px).

Phone touch menu listing active collaborator names
Phone touch menu: expands on tap to display collaborator names.

Known Issues

How to Report Feedback

Please share your testing report following the Make/Test reporting format:

  1. Environment: Device, OS, Browser & version.
  2. Tasks Tested: Which scenarios you walked through.
  3. Findings: Any bugs, unexpected behaviors, layout glitches, or design friction.
  4. Screenshots/Console: Attach screenshots or any browser console errors encountered.

You can post feedback:

Props to @devmuhib for drafting this Call for Testing, and to @joefusco and @huzaifaalmesbah for pre-publish review.

#call-for-testing, #feature-plugin

dhruvkb Openverse ·

A week in Openverse: 2026-11-02 – 2026-11-09

openverse

Merged PRs

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.

  • #5674: Size the API’s DB connection pool for request concurrency and shorten ES timeouts
  • #5677: Stop the ES client from queueing without a deadline and make the health check’s DB check opt-in
  • #5685: Stop the shared aiohttp session from keeping a cookie jar
  • #5686: Answer Elasticsearch timeouts and outages with 504/503 instead of 500
  • #5687: Publish changelog for api-2026.11.05.12.27.17
  • #5688: Trim the API’s heap periodically to stop its residual memory growth

Documentation

  • #5664: Upgrade @sentry/nuxt to v11
  • #5670: Document kernel updates and AMI migrations for Elasticsearch nodes
  • #5677: Stop the ES client from queueing without a deadline and make the health check’s DB check opt-in
  • #5687: Publish changelog for api-2026.11.05.12.27.17

Frontend

openverse-infrastructure

Merged PRs

Infra

  • #1139: Update Terraform cloudflare to ~> 4.52.0
  • #1141: Update Terraform grafana to ~> 3.25.0
  • #1147: Update Terraform 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/ to v6.13.0
  • #1166: Update Terraform aws to ~> 5.100.0
  • #1172: Move staging Elasticsearch nodes to Amazon Linux 2023
  • #1173: Add a playbook to update the kernel and reboot hosts one at a time
  • #1174: Group the production ingestion server and drop the retired Airflow host
  • #1175: Update packages in the golden image and keep launch templates on it
  • #1176: Wait for shard moves and pause rebalancing in the kernel update
  • #1177: Tune glibc malloc for the API task and raise its health check grace period
  • #1178: Move production Elasticsearch nodes to Amazon Linux 2023

#openverse, #week-in-openverse

Matt Mullenweg Core ·

Conservative in What We Accept

Joe Youngblood’s report surprised me because I didn’t realize our conservative sanitize_username approach doesn’t apply to registrations when you’re not in multi-site mode.

https://x.com/YoungbloodJoe/status/2118795342875431305

We should assume every CRUDCRUD Create, read, update and delete, the four basic functions of storing data. (More on Wikipedia.) attempt is hostile. Where else can we tighten up the range of what we accept? For usernames we could make new registrations have stricter rules than before without breaking backwards compatibility.

Just like we ship with moderated comments on by default, I think it’s a good opportunity to look at every instance where we send an email and look at how we can become less interesting to spammers. Should comment notification emails not include the content by default, and instead just link you to the moderation page?

Peter Westwood

Just like we ship with moderated comments on by default, I think it’s a good opportunity to look at every instance where we send an email and look at how we can become less interesting to spammers.

<3

Reply

Ryan McCue

There’s a few annoying inconsistencies with this in multisite, where user signup is simultaneously less restrictive and more restrictive; I think primarily due to the legacy of MU’s username:subdomain, there’s a different set of sanitizing functions. (For example, multisite has a minimum length of 4 chars for the username, which is annoying if your name is eg sam.)

Unifying the behaviour would be great, and improve security.

Reply

Torsten Landsiedel

I think it’s a good opportunity to look at every instance where we send an email and look at how we can become less interesting to spammers.

In the past every media has an attachment page with open comments out-of-the-box by default. For existing sites #57913 hasn’t changed this behavior, only for new sites. And I doubt that a redirect to the media prevents sending a POST request if comments are open for this media ID. And there is no option for this or a bulk edit for media items to turn this off globally or for each media.
See: https://core.trac.wordpress.org/ticket/58375

Reply

Rade Jekić Team Updates ·

Training Team Update – November 7th, 2026

Hello from the Training Team!
Here’s our monthly roundup of updates, highlights, and ways to get involved. Let’s celebrate the work accomplished last month and look ahead together!

📌 Highlights

Here are some important updates from the Training Team!

  • 🧳 The Training Team is working on a big project: finding outdated content in the Training Team handbook and updating it. Feel free to learn more about it and join us. You can find us in the #training channel on 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/.
  • 📚 Also, we are actively working on reviewing and improving the Learn WordPress Learning Pathways. Feel free to join the discussion and help us: https://make.wordpress.org/training/2026/10/27/help-us-review-and-improve-the-learn-wordpress-learning-pathways/
  • 🏫 We are actively working on multi-language 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. testing – we decided to reorganize all the translated content and make the Learn website easier to use for everyone. We will update you shortly.

⚒️ Overview of the Training Team Activities in October

  • We held 4 Training Team meetings. Team reps continued to facilitate weekly meetings, but we will change this going forward. We decided to give this role to all new admins in the Training Team who are willing to facilitate the meetings.
  • We held our sixth Training Team Office Hours meeting on October 28th and scheduled the next for November (we will inform you once the date is set and confirmed).

You can read the weekly meeting recap notes on the  Training Team blog.

📋 Project Status

ProjectNumber of Active Tickets
🔍 Content ready for review9
🐛 Feedback awaiting validation37
🧪 Topics awaiting vetting4
✅ Validated feedback awaiting fix27
👀 Translations ready to review22

📋 Project Update

Task TypeCompleted
🧯 Closed feedback tasks24
📖 Translated content22
🖊️ Translation in progress20
🪚 Workshops completed0

Huge thanks to all contributors – whether you took notes on a meeting, facilitated a meeting, translated or reviewed content, created content, hosted or co-hosted a workshop, or helped us wrangle the tasks and issues in 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/. Your efforts power the Training Team forward. 🙌

+make.wordpress.org/training/

#training

Not sure which team to contribute to?

Check out our contributor wizard and find how to get started.