Skip toolbar
WordPress.org

Make WordPress

Erick Wambua Team Updates ·

Test Team Update: 06 November, 2026

💡 If you don’t know how to start, join the Patch Testing Session ☕ held every 2nd and 4th Thursday of the month at 3:00 pm UTC in the #core-test.

Test Ticket Queue 🎟

👉🏽 “(change: N)” represents changes from prior 2 weeks (unless noted).
Note that review implies code validation and addresses developers.

📊 Current totals (since 23rd October, 2026):

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

  • Need to reproduce issue: 117 (change: -2)
  • Need patch testing: 137 (change: -3)

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/

  • Need to reproduce issue: 8 (change: -6)
  • Need patch testing: 1 (change: 0)

🟢 New/Changed two weeks:

Core

  • Need to reproduce issue: 1 (change: 0)
  • Need patch testing: 10 (change: -16)

Gutenberg

  • Need to reproduce issue: 1 (change: +1)
  • Need patch testing: 0 (change: 0)

To know more about these reports and what you can do, connect with the Test Team over in #core-test or ➡️ check the full meetings schedule.

props to @huzaifaalmesbah for peer reviewing this post

+make.wordpress.org/test/

#test

Juan Hernando Community ·

Community Team Supporters: Q4 2026 check-in and a new cohort

The Community Team’s Event Supporters, Program Supporters and Program Managers are the people who mentorEvent Supporter Event Supporter (formerly Mentor) is someone who has already organised a WordCamp and has time to meet with their assigned mentee every 2 weeks, they talk over where they should be in their timeline, help them to identify their issues, and also identify solutions for their issues. organizers, review local community and event applications, and keep the WordPress events program running. Over the next few weeks, several representatives from the Community team will be doing two things to keep this team healthy: checking in with everyone currently listed, and welcoming a new cohort of supporters.

Checking in with current Supporters and Managers

The Supporters and Managers page currently lists 71 people. Life changes, and many of us have less time than when we joined, which is completely fine. The list just needs to reflect the current reality.

Starting today, everyone on the list will receive an email and a 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/ message with a short check-in form. You’ll be able to choose:

  • Active: you continue in your role.
  • Inactive: you take a break of up to 6 months (holidays, work, family, sabbatical…). We’ll temporarily remove your access to our tools and you can come back whenever you’re ready.
  • Stepping back: you leave the role. We’ll thank you, remove access, and you’ll always be welcome to apply again in a future cohort.

Please reply by Wednesday, 18 November 2026. If we don’t hear from you after a reminder, we’ll mark you as inactive, not remove you, so you can come back easily.

Join the team: applications are open

We’re looking for new Event Supporters and Program Supporters.

Event Supporters mentor event organizers through the planning process, review local community applications and check in on dormant local communities.

  • Experience with WordPress community events.
  • Around 3–4 hours per month.
  • Completed the Community Team Supporter Basics and Event Mentor Training courses (you can finish them after you’re accepted).
  • To mentor WordCamps, you need to have been the lead organizer of a WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They’re one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more., from application to close, in recent years.

Program Supporters review local community and event applications, interview and orient lead organizers, and help with the Community Team inbox.

Both roles involve sensitive information, so all Supporters sign a contributor and confidentiality agreement. More details in Community Team Contributor Roles.

👉 Apply as an Event Supporter
👉 Apply as a Program Supporter

Applications close on Wednesday, 18 November 2026. If you’re not sure which role fits you, apply for the one closest to your experience and say so in the form; we’ll talk about it.

How onboarding will work

Accepted applicants will join a cohort in December:

  • Mon 30 Nov: we’ll contact everyone who applied.
  • Thu 3 Dec: welcome session for the whole cohort.
  • 7–18 Dec: group orientations by role and region, each with an assigned mentor.
  • January: a 30-day check-in to see how your first tasks are going.

You won’t be alone: each new Supporter has an onboarding mentor and a checklist to follow step by step.

Questions?

Ask in the comments, in #community-team on Making WordPress Slack, or write to support@wordcamp.org.

Thank you to everyone who has given their time as a Supporter. This program exists because of you. 💙

Thanks to @lidarroy @harmonyromo @devinmaeztri @adityakane @webtechpooja @malgra @nukaga for reviewing and giving feedback to this update.

#community-event-supporters, #community-program-supporters, #community-supporters, #onboarding

MD Mahabub- A Elahi Rahat

I think having a structured onboarding process is very important for new WordPress community contributors. A clear checklist, mentorship, and beginner-friendly resources can help people understand their responsibilities and become more confident. It is great to see the Community Team creating opportunities for more people to get involved.

Reply

Nur E Tasfiya

It is encouraging to see the community creating opportunities for people to collaborate and grow together. Support from experienced contributors can make a big difference for newcomers. Thank you for this initiative!

Reply

MD. Masjidul Islam

A well-structured onboarding framework, backed by mentorship and accessible resources, can transform newcomers into confident contributors. Great to see the WordPress Community Team fostering a more inclusive and collaborative contributor ecosystem!

Reply

Ashar Fuadi Core ·

SVG icons in the admin bar and menu in WordPress 7.2

You may have noticed the new shiny icons in the adminadmin (and super admin) screens in WordPress 7.2 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.. As previously announced on Replacing Dashicons in the admin bar and menu, the icons in the admin bar and menu are now inline SVGs from @wordpress/icons. Before, they were Dashicons font glyphs drawn with CSSCSS Cascading Style Sheets. ::before.

Most plugins and themes need no changes. Registering menu pages and admin bar nodes, with or without Dashicons, works as before. However, CSS such as admin color schemes and admin themes may need a small update. If your 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. modifies coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. icons, it might also need updating.

If your plugin or theme does not modify core admin bar or menu icons, you may jump ahead to the New 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. section below.


Needs updating: color schemes

Every CSS rule that styles core icons through ::before no longer styles the icons now as they are inline SVG elements.

If your color scheme colors icons through ::before, for backward compatibility, WordPress uses the following best-effort rules to keep the colors until you update it:

  • 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. menu: icons get the icon colors you pass to wp_admin_css_color(), falling back to the menu text color.
  • Admin bar: if you used SASS to generate your stylesheet based on core’s _admin.scss, then it already colors the .ab-icon element (luckily), so icons get to keep the intended colors.

Otherwise, icons get core’s default colors, which may not be intended. To fix your scheme completely, wherever your stylesheet colors an icon through ::before, color the element as well. The SVG will inherit the color from that element. For rules that color .ab-item::before, color the .ab-icon as well.

/* Before */
#adminmenu div.wp-menu-image::before { color: #c3c4c7; }
#wpadminbar li:hover .ab-icon::before { color: #72aee6; }
#wpadminbar #wp-admin-bar-site-name > .ab-item::before { color: #c3c4c7; }
/* After (works on 7.2 and earlier versions) */
#adminmenu div.wp-menu-image,
#adminmenu div.wp-menu-image::before { color: #c3c4c7; }
#wpadminbar li:hover .ab-icon,
#wpadminbar li:hover .ab-icon::before { color: #72aee6; }
#wpadminbar #wp-admin-bar-site-name > .ab-item .ab-icon,
#wpadminbar #wp-admin-bar-site-name > .ab-item::before { color: #c3c4c7; }

Do this for the corresponding hover, focus, current and open states, and the .mobile rules as well. The rules above are only examples.


Needs updating: core icon modifications

CSS: Hiding a core icon

Hiding an icon through ::before no longer hides the icon, which is now an element. Hide the element as well.

/* Before */
#adminmenu #menu-comments div.wp-menu-image::before { display: none; }
#wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon::before { display: none; }
#wpadminbar #wp-admin-bar-edit > .ab-item::before { display: none; }
/* After (works on 7.2 and earlier versions) */
#adminmenu #menu-comments div.wp-menu-image::before,
#adminmenu #menu-comments div.wp-menu-image svg { display: none; }
#wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon { display: none; }
#wpadminbar #wp-admin-bar-edit > .ab-item::before,
#wpadminbar #wp-admin-bar-edit > .ab-item .ab-icon { display: none; }

CSS: Replacing a core icon with an image

Styles that put a background image on the glyph and make the glyph transparent relied on core’s content to create the box. Set content and a size yourself.

/* Before */
#adminmenu #menu-posts div.wp-menu-image::before {
    background-image: url(logo.png);
    color: transparent;
}
#wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon::before {
    background-image: url(logo.png);
    color: transparent;
}
/* After (works on 7.2 and earlier versions) */
#adminmenu #menu-posts div.wp-menu-image::before {
    content: "";
    background: url(logo.png) center / 20px 20px no-repeat;
}
#wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon::before {
    content: "";
    display: inline-block;
    width: 20px;
    height: 20px;
    background: url(logo.png) center / contain no-repeat;
}

CSS: Replacing a core admin bar icon through .ab-item::before

This applies to the admin bar nodes whose icon used to be drawn on .ab-item::before: edit, customize, site-editor, my-sites, site-name and my-account. The icon is now a separate .ab-icon element, so a content set on .ab-item::before no longer replaces it. Your glyph is hidden, and core’s icon is shown instead.

To fix it, set the content on the ::before of the icon element as well, which takes the place of core’s icon.

/* Before */
#wpadminbar #wp-admin-bar-edit > .ab-item::before { content: "\f319"; }
/* After (works on 7.2 and earlier versions) */
#wpadminbar #wp-admin-bar-edit > .ab-item::before,
#wpadminbar #wp-admin-bar-edit > .ab-item .ab-icon::before { content: "\f319"; }

PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher: Modifying the title or icon of a core admin bar node

Certain core nodes used to contain the empty <span class="ab-icon"> in the title to draw the icon. Such nodes, along with the rest of core admin bar nodes, no longer have the empty span, and now set the icon with the new icon argument instead. Except for wp-logo, whose title contains the logo icon itself. For example:

  • $wp_admin_bar->get_node( 'new-content' )->title:
    • was: <span class="ab-icon" aria-hidden="true"></span><span class="ab-label">New</span>
    • now: <span class="ab-label">New</span>
  • $wp_admin_bar->get_node( 'wp-logo' )->title:
    • was: <span class="ab-icon" aria-hidden="true"></span><span class="screen-reader-text">About WordPress</span>
      now: <span class="ab-icon svg-icon" aria-hidden="true"><svg …>…</svg></span><span class="screen-reader-text">About WordPress</span>

Code that looks for the empty span in these titles will no longer find it and needs to be updated. See also the “Supporting earlier WordPress versions” section below on how to modify admin bar nodes that works across versions. See also the appendix for the full markup changes.

CSS: Styling the front end search icon, the default My Sites site icon, or the Collapse Menu icon

Styles on the pseudo-elements of these icons no longer affect them as well. Target the new element instead.

/* Before */
#wpadminbar #adminbarsearch::before { color: red; }
#wpadminbar .quicklinks li div.blavatar::before { color: red; }
#collapse-button .collapse-button-icon::after { color: red; }
/* After (works on 7.2 and earlier versions) */
#wpadminbar #adminbarsearch::before,
#wpadminbar #adminbarsearch .ab-icon { color: red; }
#wpadminbar .quicklinks li div.blavatar::before,
#wpadminbar .quicklinks li div.blavatar svg { color: red; }
#collapse-button .collapse-button-icon::after,
#collapse-button .collapse-button-icon svg { color: red; }

CSS: Targeting a menu item by its Dashicon class

Use the item’s id or its menu-icon-* class instead now.

/* Before */
#adminmenu .dashicons-admin-post::before { content: "\f319"; }
/* After (works on 7.2 and earlier versions) */
#adminmenu .dashicons-admin-post::before { content: "\f319"; }
#adminmenu .menu-icon-post div.wp-menu-image::before { content: "\f319"; }

Note that the old Dashicon class matched every menu item that used that Dashicon, while an id or a menu-icon-* class matches one item.


What keeps working

For backward compatibility, WordPress keeps the most common customizations working without changes.

Sidebar menu

  • Existing core menu data is unchanged, including the dashicons-* icon values. For example:
    • get_post_type_object( 'post' )->menu_icon is still dashicons-admin-post.
    • The $menu global and the 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/ still hold the same dashicons-* values.
  • If a plugin uses Dashicon in menu_icon and it has a matching core-admin icon, that SVG icon will be rendered instead. This includes post types with no menu_icon, which default to dashicons-admin-post.
    • See the “New API” section below for more information about the core-admin collection.
  • Any other Dashicon, image URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org, base64 SVG or none value renders exactly as before.
  • A ::before with content on div.wp-menu-image still replaces the icon, and the SVG is not shown.

Admin bar

  • On all core nodes, a ::before with content on .ab-icon still replaces the icon.
  • Third-party nodes render exactly as before.

New API to use SVG icons

If you want to use SVG icons instead of Dashicons for your own sidebar menu items and admin bar nodes, you can now pass the name of a registered icon when you register menu pages, post types and admin bar nodes.

Which icons to use

You can use an icon from core’s core-admin collection. Once an icon is added to core-admin, its name will not change and it will not be removed. You can preview the collection in the icon library on Storybook. More icons will be added to core-admin based on feedback from plugin developers.

DO NOT use the core collection for admin icons. It is meant for the front end, content and the Icon 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.. Some plugins or themes might want to unregister core icons.

You can also use your own icons. Register your own collection and its icons with wp_register_icon_collection() and wp_register_icon(), then use them the same way.

Icon names as menu icons

add_menu_page() and the menu_icon argument of register_post_type() now accept the namespaced name of a registered icon, besides the existing Dashicons, URL, base64 SVG and none values.

add_menu_page(
    __( 'Notes', 'my-plugin' ),
    __( 'Notes', 'my-plugin' ),
    'manage_options',
    'my-plugin-notes',
    'my_plugin_render_notes',
    'core-admin/pin' // Now allowed: a registered icon name.
);

icon argument for admin bar nodes

WP_Admin_Bar::add_node() now accepts an icon argument: the namespaced name of a registered icon. The icon is rendered before the title.

add_action(
    'admin_bar_menu',
    function ( WP_Admin_Bar $wp_admin_bar ) {
        $wp_admin_bar->add_node(
            array(
                'id'    => 'my-plugin-notes',
                'icon'  => 'core-admin/pin',
                'title' => __( 'Notes', 'my-plugin' ),
                'href'  => admin_url( 'admin.php?page=my-plugin-notes' ),
            )
        );
    },
    100
);

In both cases, a name that is not registered renders no icon. With WP_DEBUG enabled, it also triggers a _doing_it_wrong() notice.

wp_is_valid_icon_name()

A new helper function that returns whether a value has the form of a namespaced icon name (collection/icon-name). It does not check that the icon is registered.

Supporting earlier WordPress versions

If your plugin used to show a Dashicon in admin menu or admin bar, and you want to keep supporting it in earlier versions, follow these instructions.

This depends on whether or not your Dashicon already has an official replacement in the core-admin collection. Check the icon replacement mapping here in the manifest. Search for your Dashicon in the 'dashicons' key.

If your Dashicon has no official core-admin icon replacement in 7.2, or you want to use your own SVG icon

You can still use any alternative core-admin icon or your own SVG icon, and you need to pass the icon name explicitly.

For admin menu (add_menu_page() and register_post_type()), since icon names are not supported in earlier versions, gate it with function_exists( 'wp_is_valid_icon_name' ). In contrast, the new argument for admin bar node is ignored in earlier versions, and an empty span in the title is hidden in 7.2, so you can pass both the old Dashicon and the new SVG icon as follows.

add_menu_page(
    ...,
    function_exists( 'wp_is_valid_icon_name' ) ? 'core-admin/receipt' : 'dashicons-text'
);
$wp_admin_bar->add_node(
    array(
        ...
        'title' => '<span class="ab-icon dashicons-text" aria-hidden="true"></span> My Node',
        'icon'  => 'core-admin/receipt',
    )
);

If your Dashicon has an official core-admin icon replacement in 7.2

Admin menu icons will be automatically replaced in 7.2 with the SVG icon replacement. However, for admin bar node icons, you still need to pass the mapped icon name explicitly.

add_menu_page(
    ...,
    'dashicons-cart'
);
$wp_admin_bar->add_node(
    array(
        ...
        'title' => '<span class="ab-icon dashicons-cart" aria-hidden="true"></span> My Node',
        'icon'  => 'core-admin/cart',
    )
);

If your Dashicon has an official core-admin icon replacement in version later than 7.2

In future versions, WordPress may add more icons to the core-admin collection, which map to more Dashicons. In the future, if a new core-admin icon is registered and you want to use it, you need to further gate it with a registration check as follows.

$icon = 'dashicons-text';              // for < 7.2
if ( function_exists( 'wp_is_valid_icon_name' ) ) {
    $registry = WP_Icons_Registry::get_instance();
    if ( $registry->is_registered( 'core-admin/invoice' ) ) {
        $icon = 'core-admin/invoice';  // for > 7.2 (as an example)
    } elseif ( $registry->is_registered( 'core-admin/receipt' )  ) {
        $icon = 'core-admin/receipt';  // for 7.2
    }
}
add_menu_page(
    ...,
    $icon
);
$wp_admin_bar->add_node(
    array(
        ...
        'title' => '<span class="ab-icon dashicons-text" aria-hidden="true"></span> My Node',
        'icon'  => $icon,
    )
);

Appendix: HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. markup changes

This appendix shows how the markup and the CSS of each icon changed, for code that targets them directly.

Show the markup changes

The twelve Dashicons used by core’s top-level items are now drawn as inline SVG: Dashboard, Posts, Media, Links, Pages, Comments, Appearance, Plugins, Users, Tools, Settings and (in the networknetwork (versus site, blog) admin) Sites. So is the arrow of the Collapse Menu button.

Menu items that use one of the twelve Dashicons, for example Posts:

<!-- Before 7.2 -->
<div class='wp-menu-image dashicons-before dashicons-admin-post' aria-hidden='true'><br /></div>

.dashicons-admin-post::before { content: "\f109"; }
<!-- In 7.2 -->
<div class='wp-menu-image dashicons-before svg-icon' aria-hidden='true'><svg …>…</svg></div>

The icon color is now set on div.wp-menu-image and inherited by the SVG through currentColor.

Collapse Menu button:

<!-- Before 7.2 -->
<span class="collapse-button-icon" aria-hidden="true"></span>

#collapse-button .collapse-button-icon::after { content: "\f148"; }
<!-- In 7.2 -->
<span class="collapse-button-icon" aria-hidden="true"><svg …>…</svg></span>

Admin bar nodes

Before 7.2, the icons of most of core’s nodes were drawn either on .ab-item::before or on .ab-icon::before. The search and default site icons had their own rules. They are now all drawn as inline SVG.

Icon on .ab-item::before: edit, customize, site-editor, my-sites, site-name, and my-account when there is no 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..

<!-- Before 7.2 -->
<a class='ab-item' href='…'>Edit Post</a>

#wpadminbar #wp-admin-bar-edit > .ab-item::before { content: "\f464"; }
<!-- In 7.2 -->
<a class='ab-item' href='…'><span class="ab-icon svg-icon" aria-hidden="true"><svg …>…</svg></span>Edit Post</a>

Icon on .ab-icon::before, where the empty span was part of the node title before 7.2: wp-logo, menu-toggle, command-palette, new-content, comments and updates. In 7.2, the span is no longer in the title, except for wp-logo, and the icon is rendered from the icon argument.

<!-- Before 7.2 -->
<a class='ab-item' href='…'><span class="ab-icon" aria-hidden="true"></span><span class="ab-label">New</span></a>

#wpadminbar #wp-admin-bar-new-content .ab-icon::before { content: "\f132"; }
<!-- In 7.2 -->
<a class='ab-item' href='…'><span class="ab-icon svg-icon" aria-hidden="true"><svg …>…</svg></span><span class="ab-label">New</span></a>

Search, on the front end:

<!-- Before 7.2 -->
<form id="adminbarsearch" …><input …>…</form>

#wpadminbar #adminbarsearch::before { content: "\f179"; }
<!-- In 7.2 -->
<form id="adminbarsearch" …><span class="ab-icon svg-icon" aria-hidden="true"><svg …>…</svg></span><input …>…</form>

Default site icon in the My Sites list:

<!-- Before 7.2 -->
<div class="blavatar"></div>

#wpadminbar .quicklinks li div.blavatar::before { content: "\f120"; }
<!-- In 7.2 -->
<div class="blavatar"><svg …>…</svg></div>

The icon color is now set on .ab-icon, or on div.blavatar for the default site icon, and inherited by the SVG through currentColor.


Props @audrasjb, @peterwilsoncc, @mcsf, and @wildworks for reviewing this 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..

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

Erick Wambua Test ·

Test Team Chat Agenda: 5th November, 2026

Here is the agenda for the upcoming Test Team Voice Chat scheduled for Thursday, 05 November at 18:00 GMT+3, which will be held in the #core-test Slack channel. Lurkers welcome!

Agenda

Leave a Comment

  • Do you have something to propose for the agenda?
  • Can’t make the meeting, but have a question for the Test Team?

If any of the above apply, please leave a comment below.

#agenda, #test-chat-agenda

Aaron Jorbin Core ·

Your Content Is Going To Get More Random!

Maybe not your content per se, but the ability to discover it is with the introduction of the /random/ endpoint in WordPress 7.2. A request to example.com/random/ will lead end users to a randomly selected published post. The feature is on by default and is built on the existing rewrite, WP, and WP_Query APIs. If you have a legitimate reason to not support this on a site, or you simply hate fun, there is a filter to disable this entire feature.

The Random URLs

The random base is prefixed to existing archive paths. This default base is translatable and customizable with a new option on wp-admin/options-permalink.php. With the default base and pretty permalinks, the following rules are generated:

  • /random/ redirects to a random post.
  • /random/category/release/ redirects to a random post in the release categoryCategory The ‘category’ taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging.. Any publicly queryable taxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. attached to an eligible post type gets a similar rule, for example /random/tag/dev-note/.
  • /random/author/jorbin/ redirects to a random post by that author.
  • /random/{post-type-slug}/ redirects to a random post of a custom post typeCustom Post Type WordPress 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. that is randomable.

Randomable Post Types

A new randomable argument on register_post_type() controls eligibility. When not set, it defaults to true for post types that are publicly_queryable and have has_archive set. Among built-in types, post is randomable; page and attachment are not.

register_post_type(
        'musicals',
        array(
                'public'      => true,
                'has_archive' => true,
                'randomable'  => false, // Keep musicals out of /random/.
        )
);

Customizing So It’s a Little Less Random

The random post is chosen by the main query. WP::handle_random() runs the main query with three callbacks added for the duration of the request: wp_random_content_pre_get_posts() on pre_get_posts, wp_random_content_posts_orderby() on posts_orderby, and wp_random_content_post_limits() on post_limits. Together they restrict the query to eligible posts, order by RAND(), and limit the result to one row.

Because the selection goes through the main query, existing pre_get_posts callbacks that customize an archive also apply to its random redirect. To change the selection only for random requests, check the query with wp_is_random_content_query():

add_action(
        'pre_get_posts',
        static function ( WP_Query $query ) {
                if ( wp_is_random_content_query( $query ) ) {
                        $query->set( 'category__not_in', array( 525600 ) );
                }
        }
);

No Random, No Problem

If you prefer to disable random redirects on your site, you can use the wp_enable_random_content_redirect 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.. A simple mu-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. with add_filter( 'wp_enable_random_content_redirect', '__return_false' ); will mean no random rewrite rules are generated, the random base field is hidden on the permalinks screen, and the random query variable is ignored.

For more detail, see #64498 and changesets r64402, r64405, r65042, and r65250.

Props @peterwilsoncc, @annezazu, @jeffpaul for review.

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

MikeNGarrett

Aaron, I’m sorry, but this is not the fun I was hoping to have.
As a site builder (not a blogger), my immediate concern is that this would be more trouble to the sites I work on than it would be beneficial.
Thank you for providing an option to disable and for the benchmarks in performance I see in the tickets. Opt-in by default without a setting to disable is a bummer.

Reply

Aaron Jorbin

The WordPress Philosophies mean that opt-out options are not added for every feature, otherwise the options pages would become unusable. Some more information on this subject has been written or said by Andrew Nacin, Havoc Pennington, and Daryl Koopersmith.

Reply

David E. Smith

Don’t those same philosophies say that things in core should be really useful to the vast majority of people? This is cool and nifty and IMO belongs in a plugin.

Reply

Aaron Jorbin

I think the majority of people want their content to be discovered, so yes, this should be useful for the majority.

Reply

Marco Almeida | Webdados

Don’t those same philosophies say that things in core should be really useful to the vast majority of people? This is cool and nifty and IMO belongs in a plugin.

Random URL, “really useful to the vast majority of people” ?
Well, no.

Reply

Orlandoo

Have you ever considered that your assumption—that a feature like this would be of interest to everyone—might not actually be true? I just don’t understand why something like this isn’t released as a plugin for now. If the plugin ends up being installed frequently, a decision can still be made later about whether to integrate it into the core.
In some situations, I notice a lack of magnanimity when it comes to admitting a mistake. As a result, even the best arguments are simply brushed aside.

Reply

Arunas Liuiza

> Do as I say, not as I do.

They would need to actually care about those philosophies to consider this argument. If neither security, nor performance is given any consideration, why would a “philosophy” be any more important?

Reply

Benedikt Ledl

@jorbin
The WordPress Philosophy also says:

Clean, lean, and mean:
“core should provide features that 80% or more of end users will actually appreciate and use”

Striving for simplicity
“We want to make WordPress easier to use with every single release” -> We now all need to use code in order to disable this stupid feature, this makes WordPRess worse with this release.

Reply

Xilonz

Why does this have to be in core? It adds 0 value and unnecessary risk and maintenance burden.

I’m all in for fun, but if WordPress has to be fun, move it to the wp-admin, where WordPress users have fun, not on the public facing part.

This makes WordPress sites even more easily discoverable … so there’s an actual security implication here.

It doesn’t align to the Philosophy at all- its not lean – its not for the majority – and it adds complexity..

Reply

Aaron Jorbin

If you believe you have found a security vulnerability, I would encourage you to read about how to report it and then do so properly. Hint: Comments on random make posts isn’t it 😉

Reply

Daniel Iser

There are ample other comments here already outlining the insecure content exposure issues.

You might say “thats not a security issue”, but given I’ve been forced by the plugins team to field and “fix” reports of “content that shouldn’t be exposed is leaking” as a security threat, then this 100% qualifies in its current state. There is no way this should make it into release by those metrics alone.

Don’t take it personally, this just didn’t land the way you thought it would, and was clearly not thought out from every angle before publishing. I’m sure that feels awful from your perspective, we’ve all been there, but own it and either polish it properly or hold it responsibly.

Reply

Olli Kousa

Yeah I have to be honest, my first reaction was: “oh no, one more thing we have to remember to disable for all sites.”

I’m not even 100% sure about the potential issues this could cause, but now every person whose job it is to maintain WordPress sites has to consider all the implications and take action. Could this be used for denial of service? Is there a risk that some unintended content surfaces (maybe a CPT wasn’t configured properly in the first place)?

This really should’ve been a plugin for those that want / need it. In the ecosystem of this size, adding features to core just for fun makes very little sense.

Reply

Aaron Jorbin

my first reaction was: “oh no, one more thing we have to remember to disable for all sites.”

You don’t have to, unless you are worried about people discovering things people wrote on your site!

Reply

Arunas Liuiza

Or care about not killing your DB with a bunch of rand() calls form AI bots already swarming every site out there.

Reply

Daniel Iser

@ideag Unfortunately the core team here is taking offense to the valid objections instead of owning the lack of considerations on their part prior to pushing this out.

Reply

Sybre Waaijer

They’ve never considered the comments on Make. This isn’t a platform for discussion; never was, never will be. Give up. “Democratize publishing” is the Foundation’s facade. So is this “feature” and its defense. They act like they’re good and fun people—alas, it’s another footgun.

Reply

Olli Kousa

I understand that this is coming from a blog platform perspective where “random post about sourdough bread” is fun and relevant. Or for Wikipedia, where people go to learn fun facts.

But most of the WordPress usage isn’t really for a personal blog and discoverability mostly comes to SEO / GEO.

We manage hundred plus WP sites, mostly ecommerce and business sites with some user platforms.

There are a lot of legacy sites where the initial developer / builder may or may not have configured CPTs correctly. The “hidden” posts may just be no-indexed with random slugs, which would now be surfaced via this endpoint.

As I said, I understand where this is coming from and I’m not generally against fun. It’s just that for a lot of us, WordPress is our livelihood and this is not just harmless animation or a funny text somewhere.

There’s also the aspect of performance and maintainability. Sure, this doesn’t add a lot, but with the commitment to backwards compatibility, once it’s there you have to maintain it.

Reply

Slava Abakumov

Not all things should be randomly discovered! Some things should be read only when you get/open a link to it.

Randomable breaks this convention.

I understand that @matt wants it, but this feature does not serve 80% rule at all.

Reply

Aaron Jorbin

If you are looking to remove some things from the random endpoint, you can use the `pre_get_posts` filter. From the example in the post:

add_action(
        'pre_get_posts',
        static function ( WP_Query $query ) {
                if ( wp_is_random_content_query( $query ) ) {
                        $query->set( 'category__not_in', array( 525600 ) );
                }
        }
);

You should be able to use all of the different query argument to customize this to best suit your site!

Reply

Joost de Valk

This is a horrible idea to turn on by default. As a feature: fine. I can see the fun in it.

But turning it on by default risks exposing all sorts of content that was never meant to be public, because we all know how all post types are (ab)used for the wrong reasons and only “private” because they’re not linked anywhere.

That we’d ship this before we ship support for stuff people actually need (like `noindex`, which, would be more important with randomness like this), is weird to me.

Reply

Aaron Jorbin

Different features come at different times.

I see two tickets that mention `noindex` in the description. Is one of them the one you are hoping to champion?

Reply

Joost de Valk

I’m not championing anything until I get a public apology from leadership for how they treated me. How about you reply to my comment about the default being a security issue and not ignore that?

They’re also not different features: there’s no way to mark something as “should not be discoverable” without marking it as a draft or giving it a password. If we had `noindex` in core, we could use that to exclude those posts from this random discovery feature. Now I fear people will randomly end up on invoices, offers, client specific pages, etc.

Reply

Matt Cromwell

I can see this as useful to site owners who need to display random related content on a page; it’s an interesting query. But it’s not a discoverability tool at all. Discoverability is all about giving a user content based on their intent – this is the opposite of that.

I agree with others that this should be off by default. And I’d focus it on the query part, not the slug part.

Reply

Aaron Jorbin

I view it as a discoverability tool since it helps bring people to content. While testing it on my site, I’ve been able to find a lot of things I wrote that I’ve completely forgotten about. I even added a “Random Post” link in the header to help make this easier for more people to go to random posts. I’m excited to grep through my logs to see where on my writing journey folks end up!

Reply

Joost de Valk

Your site is a blog. Many WordPress sites are not. Do we think 80% or even 50% could benefit from this feature?

We have a plugin that does this. Matt wrote it. It has “200+” installs. That’s the amount of people that searched for and / or stumbled into this and thought “yes I need that”.

If that’s the threshold of demand we now need to get something into core, I feel for core developers the next few months as we’ll have a *very* bloated core very soon.

Please, instead of mindlessly doing what you’re being asked, think long and hard before you commit this about whether you’re willing to tie your reputation to the issues this will cause when enabled by default.

Reply

Daniel Iser

I’m both shocked and not shocked at all at the posture the core team is showing here.

They know nobody wants it, the modifications to this post and jabs about “or simply hate fun” that were added yesterday show their contempt for anyone pushing back, no matter how valid the concerns.

They have now brushed aside every challenge flawlessly:
– Security issue: content leakage is considered a security issue by the plugins team, we were forced to fix a similar issue even though it was actually an explicitly defined set of features. If it applies to our plugins.. IT MUST apply to core.
– DDOS implications are hard to dismiss
– Performance scaling issues exposed (and fixes even documented https://www.superspeedyplugins.com/2026/11/06/wordpress-random-order-by-rand-shuffle-table/)
– Philosophy / 80% good rules, provably out the window
– Extremely questionable on by default policy (originally with no filter or way to disable without query modifications, seems they begrudgingly added filter now).

Honestly I think this seemed fun to them (obviously the thumb on the scale from management didn’t help), but it didn’t land light and fun the way they imagined when they read the post before publishing. But instead of owning the feedback and making adjustments, they have simply put up a wall, dug in and decided their entire user base is wrong.

For the record my wife & I run probably 30 WP sites, only 2 are blogs, event those I wouldn’t want this on as the content is focused on specific topics the user was there for to begin with.

In the days where we don’t even read posts, having our agents do it for us, and only to answer a question we already asked, who is really gonna even use this? Who sits at a singular blog long enough to click random post all day? The only anecdotal evidence we have is from the core team and the author of both a blog testing this and admitting he uses it for himself, without saying he measured anyone else clicking his button.

Reply

Ryan McCue

Is there an idea of the performance characteristic of this feature? `ORDER BY RAND()` is notoriously slow in MySQL since it’s O(N) across the number of rows in the table – to the point that some hosts block its use. I’m a little concerned about the load impact of this on larger sites, especially with bots that might hit `/random/` repeatedly – could be an easy way to DoS a site. (Similar issue in WooCommerce.)

Reply

Jan Weiss

Ryan McCue

I saw the optimisation, but I believe this still has O(N) performance characteristic right? (50k rows is a couple orders of magnitude lower than many enterprise-class sites, so knowing how it scales is important.)

Reply

Rene Hermenau

I saw the numbers on the ticket too (up to 50k, plus one run at 200k). They stop there,
so I tried bigger tables to see if it stays linear. It does.

7.2-beta4, PHP 8.3, MariaDB 11.8 with default settings, no object cache, on my laptop
(M5 Max, Docker). The posts are fake and short, about 1 KB each.

posts query only /random/ home page (not cached)
50,000 24 ms 35 ms 43 ms
200,000 140 ms 153 ms 66 ms
1,000,000 824 ms 828 ms 196 ms
2,000,000 1.87 s 1.88 s 368 ms

So yes, still O(N). Roughly 0.5 to 0.9 ms per 1,000 published posts, all the way up to
2 million. With the whole table in memory the 2 million case is 1.4 s, so it is mostly
CPU. My posts are short and the machine is fast, so real sites will be slower. The ticket
has 74 to 157 ms at 50k with normal sized posts.

20 requests at the same time on the 2 million site took 14 s to finish. The home page
took 2.2 s for the same.

Two other things I noticed that are not on the ticket:

1. If the picked post has its permalink on another domain, there is no redirect. That
part is on purpose. But the page you get instead is a normal 200 with one post and no
no-cache or noindex headers. With a page cache in front, /random/ then showed the same
post to everybody.

2. Core handles ?random before template_redirect, and ?random=0 counts too. So old code
that handles ?random on template_redirect does not run anymore. The Random Redirect
plugin works that way, and core ignores its random_cat_id and random_post_type. I
tested this with my own small handler, not with the plugin itself.

Reply

Ryan McCue

Thanks for running the numbers, that’s useful.

I’m worried about that speed to be honest; if that’s running locally where the site isn’t actually under load (and on a very fast, modern CPU), that seems like an easy way to amplify the site’s load pretty quickly. The nature of this behaviour also means it’s “uncacheable” in the way we’d usually offload this sort of work.

Having implemented this at scale previously, one optimisation we did was to change from a pure ORDER BY RAND() LIMIT 1 to instead pull 50 posts, cache those for (say) an hour as an array, and pull one of those randomly at page load.

This is no worse for (worst-case) performance, as the ORDER BY RAND() temporary table is getting created anyway, but average-case performance improves to O(1)

(Also just to note, I’m not super concerned about this for the enterprise use-case where it’ll just be turned off, it’s more about protecting the long-tail against an easy DoS vector.)

Reply

sinan isler

it is a mistake not making default:false a feature like this shouldnt be enabled by default.

what is the agenda is there needed change for wp.com and this feature is needed and pushing it on the all wp sites is just a side effect?

whatever the reason the default shouldnt be true.

Reply

Eduard Doloc

… I am sorry, why do we not have 2FA in core, but we get this!? No offence, but WordPress is much more than a blogging platform.

Reply

Aaron Jorbin

If you are interested in working on 2fa for core, I would encourage you to read all the posts on https://make.wordpress.org/core/tag/two-factor/ and also read check out the https://github.com/WordPress/two-factor/ repo. Not sure which post to start with? you can go to a random one at https://make.wordpress.org/core/random/tag/two-factor/

Reply

Eduard Doloc

You’re missing the point, I know about the community plugin – I am actually using it on all my projects. I was referring to the need of having 2FA in the core as a higher priority than a random post selector via a generator path.

This is so easy to abuse by crawlers/bots melting into DDoS, it’s probably gonna be the most disabled feature in core if a trend like this starts… and it will start!

Look, I understand there is a need for this (not!), but do not enable it by default.

Reply

Dave Hilditch

If you’re putting this in core, I’ll be adding to my Scalability Pro plugin the ability to switch this off as otherwise it’s a DDOS waiting to happen on large sites.

They *could* make it fast – a LOT faster – 14000x faster:

https://www.superspeedyplugins.com/2026/11/06/wordpress-random-order-by-rand-shuffle-table/

Reply

Rene Hermenau

Seriously thought for a second this must be an April joke…because it’s actually funny.

I guess there is a deeper reason for that feature like fixing a security issue no one should know about…🤞 I hope for the sake of WordPress. Otherwise it seems there is a discrepancy what majority of WordPress users want to see prioritized in core and what not.

Can We be serious and focus on actual important things instead of turning WordPress into a joke? There is already the Pineapple is delicious one…

Reply

Aaron Jorbin

If you’re confused about what day today is, https://nationaldaycalendar.com/what-day-is-it will let you know. Personally, I’m excited that today is National Fountain Pen Day!

Reply

Matt Mullenweg

@jorbin That’s an awesome site. 🙂

@Om was a huge fountain pen fan, so a good day to visit https://om.co/?random

Or revisit one of last posts, the brilliant “We’re living in Pinocchio’s world: https://om.co/2026/05/25/we-are-living-in-pinocchios-world/

It’s about a pen, but also about technology. Later this month will be the 200th birthday of “Carlo Lorenzini, the Florentine writer better known as Carlo Collodi, Tuscany is celebrating the author whose mischievous wooden puppet became one of the world’s most enduring literary characters.” That’s from this lovely WordPress-powered site: https://www.theflorentine.net/2026/11/04/pinocchio-at-200/

It looks like it’s National Saxophone Day, as well! I’ve always admired, and perhaps accidentally identified, with Adolph Sax. From another lovely WordPress-powered site by Roman Benedict:

For someone who was so clearly determined to make instruments and to take over the world with his inventions, he was remarkably close to catastrophe throughout his entire life. He nearly died at least seven times during his childhood in incredibly silly ways, including accidentally drinking poison, falling off a three storey building, and swallowing a pin. But he was fine. He survived. He kept on making instruments.

I’ll keep on making Content Management Instruments.

Reply

ianatkins

Does this take into consideration no index pages that are set via plugins – as wouldn’t like those to be surfaced. And will this endpoint be excluded from sitemaps and the like?

And what stops bots and things hitting this as a dynamic endpoint when a site is fully statically cached and optimised?

Would request this is opt-in personally, updating a few hundred sites to disable this is not my idea of fun.

Reply

KC

Genuinely can’t think of a usecase for this other than gimmick.

Think back to your days at big publishers. What value would there be in a user being randomly thrown to an article in 2007?

If I was going to implement something like this, it’d be with a custom frontend plugin that has filters.

Reply

Taco Verdonschot

I get that such a feature makes sense for sites that serve “unrelated” content every day/week, like xkcd.com or other webcomics. But that is not 80% of the WP websites out there, it’s a niche.

If you have a business website, you’re much more likely to want to guide the user through your site to control their experience. A random feature would hinder that, instead of help you.

In fact, there is a plugin by Matt that adds this experience. The fact that it’s seen its last update 18 years ago, and has just over 200 installs shows the popular demand for this feature: virtually none.

When we know this, why would we add this to core?

Reply

ancawonka

I can see the validity of the performance arguments against this. At the same time, I’m working with a customer who has been asking me for this feature for several weeks. Their site is a blog-type site, and they want to surface content that isn’t on the homepage, so this is going to be very useful. I might not give access to this feature to non-logged-in users, since AI scrapers don’t always follow the robots.txt and nofollow directives.

Reply

richv22

Sigh… Matt developed a silly plugin 18 years ago and because he’s bored, he decided to push it into the core. Good job everyone… Good job Aaron.
Truly a sign of mature CMS.

Reply

Rene Hermenau

A follow-up after my earlier comment, which was more joke than help. Sorry for the tone.

I put the scaling numbers in a reply to Ryan’s question (https://make.wordpress.org/core/2026/11/05/your-content-is-going-to-get-more-random/#comment-49610): linear up to 2M posts.

Two smaller things I noticed while testing that don’t seem to be on #64498 yet:

– ‘random’ is checked with isset(), so ?random=0 triggers the redirect too. Code that already handles its own ?random on template_redirect, like the Random Redirect plugin this ticket started from, no longer runs.

– When the picked post’s permalink is on another host, the redirect is skipped on purpose. The page served instead is a normal 200 one-post archive without the no-cache and noindex headers the redirect sends, so a page cache can keep /random/ on that one post.

Happy to open a ticket with a patch for either, if you think they’re worth changing.

Reply

Aaron Jorbin

‘random’ is checked with isset(), so ?random=0 triggers the redirect too. Code that already handles its own ?random on template_redirect, like the Random Redirect plugin this ticket started from, no longer runs.

The random endpoint won’t ever get to the `template_redirect` action, so things like the Random Redirect plugin never working is intentional.

When the picked post’s permalink is on another host, the redirect is skipped on purpose. The page served instead is a normal 200 one-post archive without the no-cache and noindex headers the redirect sends, so a page cache can keep /random/ on that one post.

If the alternative permalink is registered as a safe domain to redirect to, the redirect works correctly. See: https://core.trac.wordpress.org/browser/trunk/tests/phpunit/tests/query/randomContentRedirect.php#L2096

The lack of no-cache and noindex sounds like a bug worth fixing, so a ticket would be great, thanks!

Reply

Ciprian Popescu

WordPress Core doesn’t need another attack surface

Every new publicly accessible endpoint is another potential attack surface.

Consider what happens when automated bots, malicious crawlers or a botnet start requesting /random/ thousands of times. Each request triggers WordPress to perform a random content selection query. The implementation uses ORDER BY RAND(), an operation with performance characteristics that scale linearly with the number of eligible records.

This is not a theoretical concern. The discussion above, and also in some X circles, already includes benchmarks showing requests taking close to two seconds on a database containing two million published posts.

Now imagine that happening across thousands of websites, simultaneously.

An attacker doesn’t necessarily need to exploit a vulnerability, install malware or gain access to a WordPress installation. They can simply overwhelm a website with requests to a legitimate Core endpoint that does considerably more work than a normal static page request.

There is also the content exposure problem.

A publicly queryable post type isn’t necessarily a collection of content that a site owner wants people to discover randomly. Custom post types are frequently used for business-specific data, offers, client information and other content that may be publicly accessible by URL but was never intended to be surfaced through a discovery mechanism.

And let’s not forget that compromised WordPress installations and malware already generate enough unwanted traffic and database activity. Why introduce another predictable endpoint that can be abused to consume server resources?

The problem isn’t that random content discovery is inherently bad. The problem is that it is an optional feature being imposed on every WordPress installation.

If someone wants a random post button, there are plugins for that. They can install one, configure it, and accept the associated performance and security implications.

Core should focus on functionality that the overwhelming majority of websites actually need. Not novelty features that introduce additional complexity, maintenance requirements and potential abuse scenarios.

WordPress powers millions of business websites, online shops, membership platforms and applications. Not every website is a personal blog, and not every feature that sounds “fun” belongs in Core.

Make it a plugin. Let people opt in.

Security, performance and simplicity should come before fun.

Reply

Matt Mullenweg

Please write with your hand, not with AI. And ask your AI if this is worse than what people unintentionally expose in sitemaps and the REST API, and if this query is a bigger resource exhaustion vector than submitting lots of random search strings via ?s=.

Reply

Daniel Iser

Appreciate the efforts, but you’re working on the assumption that it is a widespread desirable feature. This does not meet that in my mind at all.

I both don’t want this, nor do I think it serves any real business logical process for the avg Wordpress site.

Further we actually have a site with an existing page named random which is completely unrelated to this functionality, now it’s gonna break I’m assuming. You’re hijacking a namespace with no off-ramp.

I’d love to see the thread that lead to this honestly. I can’t see anybody actually wanting this that couldn’t have just done it in a plugin. Definitely not widespread need enough for forced on in core for everyone.

These are just my 2 cents.

Reply

Peter Wilson

@danieliser @matt A page with the slug `random` takes priority over the random redirect. The same is true for posts with the slug `random` when permalinks are set to `/%postname%/` (code reference).

Sites with such a slug will need to update the permalink settings to `shuffle` or similar (presuming, of course, they don’t also have a page with the slug `shuffle`).

I’m currently testing same for post types with the slug `random` and set to have an archive. I’ll open a ticket if the post type archive is not displayed.

Reply

Matt Mullenweg

@whyisjake It would be great to add detection and support for this to the WordPress browser extension, it’s a great way to let serendipity help you explore the archives of a great WordPress-powered writer you come across.

It’s great to have a little room for serendipity in your life, I just got an iPhone Duo to test the updates to our apps, and look what Om’s site served up on my first visit to his random URL: https://om.co/2019/03/03/what-folding-phones-say-about-state-of-smartphones/

@yani It’s really helpful to be able to visit the w.org profiles of commenters, especially on a thread like this that gets linked on X/Twitter and brings in the grumpy WP sadomasochist crowd. It would be good to keep the “recent contributions” at the very top, and perhaps bring in the 12-month number to a Gravatar-like Hovercard for .org.

@renehermi good catch on the no-cache/no-index, that’s super-essential. Is that regression from the plugin?

On this feature in general:

It’s not really a page or permanent resource. I don’t think this should be an appended pretty URL; the request was just for /?random, just at root. Also, without all the complexity that’s been introduced here, though, I do see some of it being useful.

For people complaining about performance, there are far more ways for query strings, ?s=searches, REST calls, or heaven forbid if you have GraphQL active, to resource exhaust your site.

Reply

Olli Kousa

The argument that we shouldn’t care about performance impact because there are other issues is quite problematic.

First of all, this is a new issue. Yes, there are sites that haven’t managed those previous issues. But even then it’s not really ok to add more.

And in a lot of cases where those really matter, they have been taken care of.

Now millions of sites need to take action just to avoid new issues. Amateurs are already getting a bit of tired trying to keep up to date with all the security udpates and for professionals this is just another cost item and argument towards not using WP.

I’m not really saying that things like this shouldn’t be suggested, but I do really hope that the feedback is being heard and the feature pulled.

Reply

annezazu

@whyisjake It would be great to add detection and support for this to the WordPress browser extension, it’s a great way to let serendipity help you explore the archives of a great WordPress-powered writer you come across.

Wrong Jake here! Heads up @jakemgold instead. I opened this issue so it doesn’t get lost in the comments here: https://github.com/WordPress/browser-extension/issues/129

Reply

Arunas Liuiza

> It would be good to keep the “recent contributions” at the very top,

It’s almost as if someone told us our contributions do not count and are not wanted a couple of years ago and repeatedly since then.

Reply

authora

Regarding the feature you just added which displays WordPress posts in a random order by default if we disable this feature, will the posts then be displayed in a fixed order? Or have I misunderstood?

Reply

Max Ziebell

I really dislike this.

It assumes that anyone who used custom post types… especially those who built sites years ago… automatically wants all that content to be discoverable. People often built custom systems with their own logic, and now this feature is just surfacing everything randomly.

It makes no sense. Why focus on this when there are so many actual issues in the core that need fixing? It’s time to stop pretending this is just a blog platform and own up to the fact that it’s a full-blown content management system.

Reply

vladte4

That’s definitely true. We use WordPress to build online stores because we like the flexibility of the CMS. We don’t use the blog feature at all. We’re already dealing with bots that send millions of requests to the site. To be honest, it feels like the people who create CMS platforms have never run a large website and don’t understand what people actually need. For me, WordPress is primarily about flexibility for developers, plugins, themes, and so on. For the most part, we need performance, support for modern programming technologies, and security. You’d be better off thinking this through rather than adding unnecessary features to the core that will only create new problems

Reply

vladte4

I’ll add my own comment as well, because so far I see 90% negative reviews, and you keep arguing that this will be useful to people—and if anyone doesn’t like my idea, just delete it from the websites yourselves. That’s why I’m against it, too; we won’t need it for our 20 websites either

Reply

Paul Wong-Gibbs

The performance characteristics of this are a real problem – the ORDER BY RAND – and it is likely to act as an easy way to increase load on someone’s hosting server, impacting overall performance.

Enterprise might not like this, but the affects will still be felt on small/medium hosting environments as well, which are often more resource constrained than larger sites.

Reply

Anh Tran

I don’t think this feature is useful for most websites, even personal blogs (not many of them like it). WP serves a large user base, and it should prioritize what benefits the majority.

For anyone who wants this feature, they can develop it for themselves, just like normal plugins.

Reply

Ben May

It is hard to reconcile the rollout strategy here with the standards we hold the rest of the community to.

When contributors propose new features—even small workflow enhancements—the standard answer is almost always: “Put it in a feature plugin first, gather data, prove demand, and make it opt-in.” Yet for a change that fundamentally alters default content behavior and predictability, that entire governance process seems to have been bypassed in favor of an opt-out default baked directly into Core.

If this feature is genuinely compelling, it shouldn’t need to be forced onto millions of sites by default with the burden placed on agencies, site owners, and developers to scramble to disable it. Incubating this as a standalone feature plugin first would respect the established Core merge process, provide real opt-in telemetry, and show that the rules around architectural changes apply consistently to everyone.

Reply

jimmy_r

This piece of utter garbage only has value in school as an example of how to write a plugin for WordPress for children wanting to learn how to do software development.

It barely deserves a place in the plugin repository, and absolutely not in core.

Reply

MD Mahabub- A Elahi Rahat

I find this feature interesting because it can help visitors discover content they might not normally find through regular navigation. I would also like to understand how it behaves on websites with large numbers of posts and custom post types. Clear documentation about customization and disabling the feature will be helpful for site owners.

Reply

vladte4

You’d be better off working on the site’s navigation rather than cluttering up WordPress. Why would a user want to read, for example, a news article from 2003 when it’s now 2026? And if you’re interested, just add a plugin or write some code using AI in the core—90% of users don’t need this.

Reply

CharlyLeetham

WordPress is a content management system, not just a blogging platform, and this feature appears to overlook how WordPress is used to build real business websites.

Many sites use posts and custom post types for specific content functions. Testimonials, for example, may be managed as individual entries but are intended to appear within a testimonial section, carousel or service page. Other posts may contain supporting content, reusable information or components that only make sense when presented within a particular context.

Publishing content does not automatically mean that it is appropriate for visitors to discover or view that content individually.

The introduction of `/random/` creates an entirely new way for visitors and crawlers to access content, without the site owner requesting it or necessarily knowing it exists.

This is not simply about discovering older blog posts. It potentially changes how existing websites expose content that was created for a specific purpose.

The fact that developers can disable the feature does not address the underlying problem. Why should every website owner, developer and maintenance provider have to identify and disable functionality they never requested, particularly when it can affect the way content is presented?

There are also legitimate concerns about unnecessary database queries, automated requests and the additional maintenance burden across large numbers of existing installations.

This isn’t the “fun” I wanted to have – reviewing every single WordPress site I manage for customers and adding a filter to turn off something that breaks how visitors should flow through the site. Fun, for me and my clients, is being able to have a site that works as expected and not be changed because a dev thinks something is cool.

If random content discovery is useful for a particular website, its owner should be able to enable it.

This feature should be opt-in, not enabled by default. It doesn’t have to be an option in the settings screen, just like you’re forcing us to go and add the filter to all our sites – those who wish to enable it can add the filter.

Reply

Glenton

What a complete waste of development time. Of all the things that should be a priority for WordPress, this should be last on the ever-growing list. This is completely useless functionality.

Reply

Benedikt Ledl

The feedback here is overwhelmingly negative, yet legitimate concerns are being met with dismissive replies and jokes instead of meaningful answers. That’s ignoring the community rather than listening to it.

Please take these objections seriously and reconsider shipping this enabled by default.

Reply

Frank G.

I’m also against this. This “feature” is too niche for the core and definitely shouldn’t be enabled by default, since it adds maintenance and could conflict with existing URLs. It would be a better fit as a plugin for those who want it.

Reply

mbaierl

Really?
WordPress Core focusses on something that should be in a plugin AND has security implications (i.e. leaking pages that are set to “nonindex”)… what a waste of resources and time (look at the number of comments above!).

Maybe make Gutenberg useful, focus on a useful MCP server, fix translations before creating something that every AI can code as plugin in 2 minutes…

Reply

Bryan Schneidewind

I’ll take things no one wants for $1000, please, Alex

Seriously folks… this should have been a plugin, it’s not something that the majority of users want or will even benefit from..

Reply

Xilonz

I’m sorry to tell you, but this is based of Matt’s 18 year old random-redirect plugin that no one uses lol.

They already knew and could’ve expected this.

“The scientists were so preoccupied with wether or not they could, they didn’t stop to think they should”

Reply

Tommy Ferry

I completely agree with all the negative feedback this feature has been receiving.

Given the range of concerns that everyone has been raising, especially around the potential for security & performance issues, it seems reasonable to remove this from the 7.2 release plan and review whether it’s actually a relevant on-by-default feature. Given the dismissive (and, in some cases, borderline rude) replies from the core team on this thread, it seems like this feature will be pushed through regardless of the community feedback. I hope that isn’t the case.

Reply

Maxime Jobin

This is C-R-A-Z-Y.

At best, this is a plugin. A useless one in many cases… but I’m not against your plugin idea.

It makes no sense to add this feature in core.

Reply

Fellyph Cintra Playground ·

Clone your WordPress site in Playground with Reprint

Try a new layout, check a 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. update, or investigate a bug using a copy of your own WordPress site. WordPress Playground can now bring that copy into your browser, with no local server to install.

The feature uses Reprint to copy a site’s files and database. You get an editable WordPress site with familiar content. Editing the copy does not publish those changes to your live site. Recent updates make the process easier to follow, with clearer setup instructions, visible authorization steps, and a completion message. You can follow these improvements in the Playground changelog.

Try the demo first

You can explore the workflow before connecting your own site:

  1. Open the Field Notes demo in Playground.
  2. Wait for Playground to load, then select Clone site. This public demo needs no account or migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. key.
  3. Keep the tab open while the copy completes, then select Open site.
  4. Open the WordPress dashboard in the copy and edit a post. Change its title, save it, and view the result.

You now have your own version to explore. The public demo stays the same.

Clone your own site

Your source site needs the Reprint plugin installed and activated. You need administrator access to install it and authorize Playground. Entering a site’s URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org alone does not grant access to its files or database.

  1. Open WordPress Playground and choose New Playground Clone a live site.
  2. Enter your site’s address and select Check site.
  3. If prompted, follow the link to install and activate Reprint on your live site. Return to Playground and check again.
  4. Copy the migration key shown in Playground. On your live site, open Tools Reprint Server, paste it into Migration Token, and select Authorize client. This lets Playground read the site for the copy.
  5. Return to Playground and select Clone site. When it finishes, select Open site.

Playground saves the completed copy in your browser; wait for the save indicator to confirm completion. If copying finishes but automatic sign-in fails, you can retry sign-in without downloading the site again. The cloning guide explains these recovery options.

Three things to try with your copy

  • Explore a design change. Edit a page, rearrange its blocks, and replace an image. Preview how the layout works with your real text and media before making the same changes on your live site.
  • Check a plugin update. Update a plugin in the copy, then revisit the pages that use it. For a gallery plugin, check that images still appear, navigation works, and the layout fits a narrow screen.
  • Investigate a bug. Repeat the action that causes the problem, deactivate a suspected plugin in the copy, and try again. Developers can inspect Dev Tools Logs for more clues.

Playground runs WordPress in a different environment from your host, so some plugins and external services may behave differently. Use these checks alongside testing on your hosting environment.

How copying works

Reprint transfers files and database content in small parts, so the source server does not need to create one large ZIP first. It also adjusts stored site addresses for the copy.

If a connection fails, follow the recovery message in Playground. Keep the tab open: eligible failures can resume from the transfer’s progress, but reloading or closing the tab loses an unfinished copy. The browser import currently accepts up to 2 GiB of selected files and database export data, and needs additional space to run the site.

A copied site can contain private content, user data, and plugin credentials. Remove that information before sharing an export.

When to use a local copy

For larger sites or ongoing development, Reprint can also copy a site to your laptop or another server. This route uses a terminal and 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. You can choose SQLite without installing a separate database server, or use MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com if you already have it. Follow the Reprint Handbook’s cloning guide for setup and commands.

Start with the Field Notes demo, try one change, and share your experience in the Playground issue tracker.

Krupa Nanda Accessibility ·

Accessibility Team Meeting Agenda: November 05, 2026

This is the proposed agenda for the bi-weekly 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 on Thursday, November 05, 2026 at 08:30 PM GMT+5:30

📣 Announcements

Working groups

  • 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
  • Accessibility-ready Program
  • Documentation about Web Accessibility

Open floor

If you want to have a topic added to the agenda, please mention it in the comments of this post.

The Accessibility Team bug scrub is every Tuesday at 16:00 UTC, held in the #accessibility 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/ (registration required).

#accessibility, #agenda

Amy Kamala Core ·

Dev Chat Agenda – November 4, 2026

The next WordPress Developers Chat will take place on Wednesday, November 4, 2026, at 15:00 UTC in the core channel on Make WordPress Slack.

The live meeting focuses on upcoming releases and CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. development, with time for discussions and open floor.

If you have requests for help with a ticketticket Created for both bug reports and feature development on the bug tracker. or another discussion topic, please post details in the comments section at the end of this agenda, or bring it up in Dev Chat during open floor.

Announcements 📢

WordPress 7.2

  • WordPress 7.2 Beta 4 released Nov 3rd, 2026
  • 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. 5 scheduled for Nov 10th

General

Discussions 💬

The discussion section of the agenda is for discussing important topics affecting the upcoming release or larger initiatives that impact the Core Team. To nominate a topic for discussion, please leave a comment on this agenda with a summary of the topic, any relevant links that will help people get context for the discussion, and what kind of feedback you are looking for from others participating in the discussion.

  • @awetz583 is requesting input on issue #85957 – a new icon for Gallery Grid coming in 7.2.

Open floor  🎙️

Any topic can be raised for discussion in the comments, as well as requests for assistance on tickets. Tickets in the milestone for the next major or maintenance release will be prioritized.

Please include details of tickets / PRs and the links in the comments, and indicate whether you intend to be available during the meeting for discussion or will be async.

#7-2, #agenda, #core, #dev-chat

leemon

Hi everyone!

Since the previous Dev Chat was canceled, I’m bringing this up again for today’s chat. Could someone take a look at this issue?

Block Style Variation for core/navigation-link applies in Editor (via unique generated class) but fails to render on Frontend – #85833

Thanks!

Reply

Nur E Tasfiya

WordPress development involves many important discussions behind the scenes. Following these meetings is a great way to learn how improvements are planned and implemented. Thanks for making the agenda publicly available.

Reply

Nur E Tasfiya

I think discussions like these are important for improving WordPress. It would be great to have more information about how new contributors can test upcoming features and report bugs. This could help more beginners get involved in WordPress development.

Reply

Amy Kamala Hosting ·

Hosting Team Meeting Agenda 2026-11-04

Next Meeting

The next meeting will be in the #hosting 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/ channel on Wednesday, November 04, 2026 at 0900 UTC. The meeting on Wednesday, November 04, 2026 at 1800 UTC is canceled for WCEH Contributor DayContributor Day Contributor 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/.

Agenda

  • WCEH Contributor Day is 11/4/26 starting 9am PST, with @jazzs3quence leading the HostingHosting A web hosting service is a type of Internet hosting service that allows individuals and organizations to make their website accessible via the World Wide Web. team table
  • WordPress 7.2 Beta 4 released Nov 3rd, 2026
  • BetaBeta Beta is the software development phase following alpha. A Beta phase generally begins when the software is feature complete but likely to contain a number of known or unknown bugs. Software in the beta phase will generally have many more bugs in it than completed software, speed or performance issues, and may still cause crashes or data loss. The focus of beta testing is reducing impacts to users, often incorporating usability testing. 5 scheduled for Tues, Nov 10th
  • Tickets/PRs

Anything else? Please leave a comment with any additions or suggestions for the meeting.

Props to @jazzs3quence for the pre-publish review!

#agenda, #hosting-community, #meetings, #weekly-hosting-chat

Chris Reynolds Hosting ·

WordCamp Canada 2026 Contributor Day

It’s time for WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They’re one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Canada in Vancouver, BC, November 4-6! 🎉

The HostingHosting A web hosting service is a type of Internet hosting service that allows individuals and organizations to make their website accessible via the World Wide Web. team is excited to have a table at Contributor DayContributor Day Contributor 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/ on November 4th!

Contributor Days kick off each flagship WordCamp with a focus on community: dedicating a day for folks to come together to contribute to the WordPress Open SourceOpen Source Open Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. Project. If you’d like to attend in person you can register for Contributor Day here. If you can’t be there in person, you can still contribute remotely!

This year, @jazzs3quence will be leading the Contributor Day Hosting table.

Every year contributors show up for the Hosting team in a big way to move team initiatives forward. Thank you all for your contributions to the team!

At the WCEH ‘26 Hosting table, you’re invited to work on team projects, like the distributed testing software and hosting handbooks.

What does the Hosting team do?

The Hosting team collaborates with web hosts and WordPress CoreCore Core is the set of software required to run WordPress. The Core Team builds WordPress. to maintain infrastructure-focused documentation and facilitate testing of pre-release WordPress versions on hosting systems. This helps inform the development process and ensure that WordPress and hosting platforms are compatible, error-free, optimized, and that version updates roll out smoothly.

Thank you to the more than 70 hosts who participate in distributed testing!

Schedule

Here is the schedule for WCEH 2026 Contributor Day (all times Pacific):

  • 08:00 Registration
  • 09:00 Start contributing!
  • 12:00 Lunch break
  • 13:00 Back to contributing
  • 16:00 Wrap-up

How to Contribute

To learn how to contribute to the Hosting Team, start by checking out the Hosting Handbook for details on the team and what it does. Folks will need a 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/ account, a 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/ account, a GitHubGitHub GitHub is a website that offers online implementation of git repositories that can 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 be the repository owner. account, and a computer with GitGit Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. Most modern plugin and theme development is being done with this version control system. and a text or code editing software – because the team maintains handbook and automated testing projects through GitHub.

Hop into the #hosting Slack channel at any time with any questions or comments, especially if you’re contributing remotely, and feel free to join the #contributor-day Slack channel too!

Join In Person:

For those attending WCEH Contributor Day in person, check-in starts at 8:00 am local time. Don’t worry if you’ve never contributed to WordPress, folks are happy to help you navigate. Just ask!

Join Remotely:

Can’t make it in person? No problem! Remote contributors are invited to join on Wednesday, November 4, 2026 at 16:00 UTC in the #hosting channel.
To check in and share that you’ve joined, drop a comment in #hosting.

This year, the team will be working on:

Get involved with distributed testing

The Hosting Team maintains a PHPunit Test Runner and Reporter software that enables Web Hosts to test unreleased WordPress software updates on hosting platforms and report any conflicts, errors or issues that may need to be addressed. Many Hosts participate (thank you!) and are recognized with their results here.

Want to contribute by testing on your hosting system? Get Started with distributed testing here.

For hosts who already participate in testing, please check on your test runners, they are not ok. If you need help troubleshooting, the Hosting table is a perfect place to ask!

Test Runner improvements

This Contributor Day, the team will be working on support for running the hosting tests in different serverServer A server is a piece of computer hardware or software that provides functionality for other programs or devices. Typical servers are database servers, file servers, mail servers, print servers, web servers, game servers, and application servers. environments:

  • It is possible to do matrix testing against multiple different hosting environments and for those individual test results to be reported back to the Testing Results page but there is not good documentation on this. It would be good to add some documentation that walks through this setup so people know it’s possible.
  • This PR allows multiple versions of PHPPHP PHP (PHP: Hypertext Preprocessor) is a general-purpose scripting language especially suited to web development. PHP code is usually processed on a web server by a PHP interpreter. On a web server, the result of the interpreted and executed PHP code would form the whole or part of an HTTP response. to be tested in a single environment. It’s been tested and approved to merge but could use testing in other hosting environments.

Alternately, you can just snag any ticket you like, dig in, push, open, review, and test! Tickets and PRs available to work on can be found here:

Don’t code? Don’t worry! There are opportunities for everyone!

Handbook Updates

The Hosting Team maintains the WordPress Hosting Handbook and contributes to the Advanced Administration Handbook.

Tickets and PRs to work on the handbooks are available here:

Anyone that speaks basic English can contribute to the Handbooks!

Getting Started

To work on open tickets

1) Fork the repository you wish to work on

2) Pick an issue and mention in the issue comments that you’re going to work on it. If you’re a member of the WordPress GitHub organization, assign the issue to yourself in GitHub. Otherwise a lead will assign the ticket to you.

3) Name your branch with the issue number, your name, and a WCEH26 prefix.

For example, if I want to work on Hosting Handbook issue #393, I’ll first comment that I am working on it, then hit the ‘assign yourself’ button on the upper right of the issue. Next, I’ll make a new fork of the repo or sync my existing fork, and git clone onto my local dev environment, or git pull into the ‘master’ branch on my existing clone. From there, I’ll checkout a new branch from main with the name WCEH26-393-jazzs3quence.

Learn how to install Git here, and some basic Git commands to get started!

Reviews

Once you’ve pushed your changes and opened a new pull request, tag some reviewers on the upper right of the PR. If you don’t know who to tag, feel free to tag a team repTeam Rep A Team Rep is a person who represents the Make WordPress team to the rest of the project, make sure issues are raised and addressed as needed, and coordinates cross-team efforts.: @kittenkamala, @zunaid, @jazzsequence

If you’re reviewing work yourself, make sure you’re added as a reviewer on the upper right of the ticket, and comment on the PR with any feedback with a mention of WCEH CD 2026.

Testing and Merges

PRs must have 2 approvals and be fully up to date with the base branch in order to be merged. Pay attention to the comments on your PRs in case follow up is needed!

Changes to the testing software must be tested on a hosting platform prior to being merged. If you’re doing testing make sure to comment on the PR with your findings, the hosting platform/specs, and don’t forget to mention in the comment that you tested during WCEH CD 2026

See You There!

Contributor Days are always fun and inspiring, and it’s rewarding to build momentum on WordPress initiatives as a community. The Hosting Team is excited to welcome both new and experienced contributors to collaborate and add value in your own unique ways, while helping move Hosting Team projects forward!

Please join us at WCEH 2026 Contributor Day on November 4, 2026 to make WordPress hosting even better!

Can’t wait to see you there!

#contributor-day, #wceh, #wordcamp

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.

  • Documentation

    Good documentation lets people help themselves when they get stuck. The docs team is responsible for creating documentation and is always on the look-out for writers. The blog has discussion around the team’s current projects.

  • Themes

    The Theme Review Team reviews and approves every Theme submitted to the WordPress Theme repository. Reviewing Themes sharpens your own Theme development skills. You can help out and join the discussion on the blog.

  • Plugins

    If you are a 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. developer, subscribe to the Plugin review team blog to keep up with the latest updates, find resources, and learn about any issues around Plugin development.

  • Community

    If you’re interested in organizing a meetupMeetup All local/regional gatherings that are officially a part of the WordPress world but are not WordCamps are organized through https://www.meetup.com/. A meetup is typically a chance for local WordPress users to get together and share new ideas and seek help from one another. Searching for ‘WordPress’ on meetup.com will help you find options in your area. or a WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They’re one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more., the community blog is a great place to get started. There are groups working to support events, to create outreach and training programs, and generally support the community.

  • Meta

    The MetaMeta Meta 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. team makes 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/, provides support, and builds tools for use by all the contributor groups. If you want to help make WordPress.org better, sign up for updates from the Meta blog.

  • Training

    The WordPress training team helps people learn to use, extend, and contribute to WordPress through synchronous and asynchronous learning as well as downloadable lesson plans for instructors to use in live environments, via learn.wordpress.org.

    If you enjoy teaching people how to use and build stuff for WordPress, immediately stop what you’re doing and join our team!

  • Test

    The Test Team works to improve WordPress quality and usability by advancing the development process through manual and automated testing. Whether through a browser, app, terminal, or code, the team focuses on testing across the entire WordPress ecosystem, including CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and 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/, mobile apps and themes, and feature plugins and importers.

  • TV

    The TV team reviews and approves every video submitted to WordPress.tv. They also help WordCamps with video post-production and are responsible for the captioning and subtitling of published videos. Reviewing videos is a great way to learn about WordPress and help the community: experience is not required to get involved.

  • Marketing

    The Marketing team is currently archived to make room for an experimental shift in focus and processes. Check out the WordPress Media Corps to learn more. Amplification requests and Showcase activities are still running, and you can find out more about them on GitHub.

  • CLI

    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/ is the official command line tool for interacting with and managing your WordPress sites.

  • Hosting

    The Hosting team maintains distributed testing software that tests pre-release versions of WordPress on hosting systems, and infrastructure-focused documentation.

  • Tide

    Tide is a series of automated tests run against every 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 in the directory and then displays 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 compatibility and test errors/warnings in the directory.

  • Openverse

    Openverse is a search engine for openly-licensed media. The Openverse team implements new features and new media types; maintains the public 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. and front-end search engine; and develops WordPress integrations to share Openverse with the entire WordPress community.

  • Photos

    The Photo Directory team moderates every photo submitted to the WordPress Photo Directory, maintains and improves the directory site itself, and provides resources and documentation to educate, encourage, and facilitate photo contributors.

  • Core Performance

    The coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. performance team is dedicated to monitoring, enhancing, and promoting performance in WordPress core and its surrounding ecosystem.

  • Playground

    The Playground team works on WordPress Playground: the platform that lets you run WordPress instantly on any device without a host, most often in a browser.

  • Core AI

    The CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. AI Team coordinates and accelerates AI efforts across the project, focusing on responsible innovation that aligns with WordPress values. We use a 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.-first approach to explore AI-powered features, share a public roadmap, and collaborate with other teams.

  • Core Program

    The CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Program team is focused on strengthening coordination across teams, improving efficiency and empowering contribution. It’s a home for those who span across product and project work.

All teams and their meetings

Not sure which team to contribute to?

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