From b1e0bc555b1eb9d5b5fc5a3185c1383deac226a5 Mon Sep 17 00:00:00 2001 From: Himanshu Pathak Date: Wed, 17 Jun 2026 15:59:11 +0530 Subject: [PATCH 1/3] Plugins: Add "View more plugins by [Author]" link to plugin row meta on the installed plugins screen --- .../includes/class-wp-plugins-list-table.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/wp-admin/includes/class-wp-plugins-list-table.php b/src/wp-admin/includes/class-wp-plugins-list-table.php index 08b2e982e702f..92629e7f81953 100644 --- a/src/wp-admin/includes/class-wp-plugins-list-table.php +++ b/src/wp-admin/includes/class-wp-plugins-list-table.php @@ -1292,6 +1292,21 @@ public function single_row( $item ) { ); } + if ( ! empty( $plugin_data['AuthorName'] ) && current_user_can( 'install_plugins' ) ) { + $plugin_meta[] = sprintf( + '%s', + esc_url( + network_admin_url( + 'plugin-install.php?tab=search&s=' . urlencode( $plugin_data['AuthorName'] ) + ) + ), + /* translators: %s: Plugin author name. */ + esc_attr( sprintf( __( 'Search for more plugins by %s' ), $plugin_data['AuthorName'] ) ), + /* translators: %s: Plugin author name. */ + sprintf( __( 'View more plugins by %s' ), $plugin_data['AuthorName'] ) + ); + } + /** * Filters the array of row meta for each plugin in the Plugins list table. * From d20ab9ae01d35e0cfe1d4bb67c4c2395b7da102a Mon Sep 17 00:00:00 2001 From: Himanshu Pathak Date: Wed, 17 Jun 2026 15:59:49 +0530 Subject: [PATCH 2/3] Strip tags and escape link string --- src/wp-admin/includes/class-wp-plugins-list-table.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/wp-admin/includes/class-wp-plugins-list-table.php b/src/wp-admin/includes/class-wp-plugins-list-table.php index 92629e7f81953..90a41ceee3a79 100644 --- a/src/wp-admin/includes/class-wp-plugins-list-table.php +++ b/src/wp-admin/includes/class-wp-plugins-list-table.php @@ -1292,18 +1292,19 @@ public function single_row( $item ) { ); } - if ( ! empty( $plugin_data['AuthorName'] ) && current_user_can( 'install_plugins' ) ) { + if ( ! empty( $plugin_data['AuthorName'] ) && isset( $plugin_data['slug'] ) && current_user_can( 'install_plugins' ) ) { + $author_name = wp_strip_all_tags( $plugin_data['AuthorName'] ); $plugin_meta[] = sprintf( '%s', esc_url( network_admin_url( - 'plugin-install.php?tab=search&s=' . urlencode( $plugin_data['AuthorName'] ) + 'plugin-install.php?tab=search&s=' . urlencode( $author_name ) ) ), /* translators: %s: Plugin author name. */ - esc_attr( sprintf( __( 'Search for more plugins by %s' ), $plugin_data['AuthorName'] ) ), + esc_attr( sprintf( __( 'Search for more plugins by %s' ), $author_name ) ), /* translators: %s: Plugin author name. */ - sprintf( __( 'View more plugins by %s' ), $plugin_data['AuthorName'] ) + esc_html( sprintf( __( 'View more plugins by %s' ), $author_name ) ) ); } From 5cf69924d04a88031415d24ef1d3255b0460475e Mon Sep 17 00:00:00 2001 From: Himanshu Pathak Date: Wed, 17 Jun 2026 16:01:51 +0530 Subject: [PATCH 3/3] Fix linting --- src/wp-admin/includes/class-wp-plugins-list-table.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wp-admin/includes/class-wp-plugins-list-table.php b/src/wp-admin/includes/class-wp-plugins-list-table.php index 90a41ceee3a79..69c84a7b3b2c3 100644 --- a/src/wp-admin/includes/class-wp-plugins-list-table.php +++ b/src/wp-admin/includes/class-wp-plugins-list-table.php @@ -1293,7 +1293,7 @@ public function single_row( $item ) { } if ( ! empty( $plugin_data['AuthorName'] ) && isset( $plugin_data['slug'] ) && current_user_can( 'install_plugins' ) ) { - $author_name = wp_strip_all_tags( $plugin_data['AuthorName'] ); + $author_name = wp_strip_all_tags( $plugin_data['AuthorName'] ); $plugin_meta[] = sprintf( '%s', esc_url(