[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