[wp-trac] [WordPress Trac] #65359: Plugins list: add a native "Filter by author" control instead of per-author status tabs
WordPress Trac
noreply at wordpress.org
Wed May 27 16:50:37 UTC 2026
#65359: Plugins list: add a native "Filter by author" control instead of per-author
status tabs
-------------------------+-------------------------------------------------
Reporter: lopo | Owner: (none)
Type: enhancement | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Plugins | Version: 7.0
Severity: normal | Keywords: has-patch has-unit-tests needs-
Focuses: | testing
-------------------------+-------------------------------------------------
Since #60495 / [61695] (WP 7.0), plugins can add custom views to the
Plugins screen filter bar via `plugins_list` (#57278) plus the new
`plugins_list_status_text`. Using this to group plugins on a per-author
basis can be useful, but as raised in #60495 comment:40, that pattern has
two problems:
1. **It doesn't scale.** Each adopting vendor adds a top-level link to the
single-line `subsubsub` bar, crowding out the functional status views on
sites with plugins from many authors.
2. **It conflates two axes** — a plugin's *status* (active, needs update…)
versus its *source* (who made it).
**Proposal:** leave the #60495 hooks as-is and add a dedicated control for
the *author* axis — a single native "Filter by author" `<select>` plus a
Filter button in the tablenav, backed by a new `plugin_author` query
variable and populated from installed plugins' `Author` headers. One
control regardless of author count, for every plugin, with no plugin-side
code. It is shown only when ≥2 distinct authors are installed.
It works without JavaScript (plain `GET`), is CSP-safe, and is fully
accessible — a native labelled `<select>` with an explicit Filter button,
so nothing navigates on change. The grouping is filterable via
`plugins_list_authors` and `plugins_list_plugin_author` (e.g. to merge
author-name header variants under one entry). `get_views()` and the #60495
hooks are untouched: this is purely additive and reverts nothing from 7.0.
It does not *forbid* a plugin from still injecting a status tab — it gives
author filtering a clutter-free home and removes the incentive.
A patch against `WP_Plugins_List_Table` and `wp-admin/plugins.php`, with
unit tests, is attached.
These two filters let plugins refine the grouping, which is otherwise
coarse since it is derived straight from the `Author` header:
{{{#!php
<?php
// Merge author-name variants by returning the same key for several
plugins.
apply_filters( 'plugins_list_plugin_author', string $author_key, string
$plugin_file, array $plugin_data ): string
// Relabel / reorder / hide / merge dropdown entries: [ key => [ 'label',
'count' ] ].
apply_filters( 'plugins_list_authors', array $plugin_authors, array
$all_plugins ): array
}}}
Props to webdados.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/65359>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list