plugins_api_result is a WordPress PHP filter that allows you to modify the Plugin Installation API response results.
Usage
function my_plugins_api_result( $res, $action, $args ) { return $res; } add_filter( 'plugins_api_result', 'my_plugins_api_result', 10, 3 );
Parameters
$res
(object|WP_Error): The response object or WP_Error to be modified.$action
(string): The type of information being requested from the Plugin Installation API.$args
(object): Plugin API arguments.
Examples
Change plugin details
function modify_plugin_details( $res, $action, $args ) { if ( $action == 'plugin_information' && isset( $res->slug ) && $res->slug == 'your-plugin-slug' ) { $res->name = 'New Plugin Name'; $res->author = 'New Author Name'; } return $res; } add_filter( 'plugins_api_result', 'modify_plugin_details', 10, 3 );
In this example, we modify the name and author of a specific plugin using its slug. If the action is ‘plugin_information’ and the slug matches our target plugin, we change the name and author.
Add custom data to the response
function add_custom_data( $res, $action, $args ) { $res->custom_data = 'This is custom data added to the response'; return $res; } add_filter( 'plugins_api_result', 'add_custom_data', 10, 3 );
Here, we add custom data to the response object for all plugins by adding a new property custom_data
with the desired value.
Filter plugins by a specific author
function filter_plugins_by_author( $res, $action, $args ) { if ( $action == 'query_plugins' ) { $filtered_plugins = array(); foreach ( $res->plugins as $plugin ) { if ( $plugin->author == 'Target Author' ) { $filtered_plugins[] = $plugin; } } $res->plugins = $filtered_plugins; } return $res; } add_filter( 'plugins_api_result', 'filter_plugins_by_author', 10, 3 );
In this example, we filter the plugins list to show only plugins by a specific author when the action is ‘query_plugins’.
Remove a plugin from the results
function remove_plugin_from_results( $res, $action, $args ) { if ( $action == 'query_plugins' ) { $filtered_plugins = array(); foreach ( $res->plugins as $plugin ) { if ( $plugin->slug != 'plugin-to-remove' ) { $filtered_plugins[] = $plugin; } } $res->plugins = $filtered_plugins; } return $res; } add_filter( 'plugins_api_result', 'remove_plugin_from_results', 10, 3 );
This example shows how to remove a specific plugin from the results by checking its slug and filtering it out from the plugins
array.
Modify plugin rating
function modify_plugin_rating( $res, $action, $args ) { if ( $action == 'plugin_information' && isset( $res->slug ) && $res->slug == 'your-plugin-slug' ) { $res->rating = 100; } return $res; } add_filter( 'plugins_api_result', 'modify_plugin_rating', 10, 3 );
In this example, we modify the rating of a specific plugin using its slug. If the action is ‘plugin_information’ and the slug matches our target plugin, we change the rating to 100.
Change plugin icons
function change_plugin_icons( $res, $action, $args ) { if ( $action == 'plugin_information' && isset( $res->slug ) && $res->slug == 'your-plugin-slug' ) { $res->icons = array( '1x' => 'https://example.com/your-icon-128x128.png', '2x' => 'https://example.com/your-icon-256x256.png', 'svg' => 'https://example.com/your-icon.svg' ); } return $res; } add_filter( 'plugins_api_result', 'change_plugin_icons', 10, 3 );
In this example, we change the plugin icons using custom image URLs. If the action is ‘plugin_information’ and the slug matches our target plugin, we modify the icons
array with the new URLs.
Hide a specific plugin version
function hide_specific_plugin_version( $res, $action, $args ) { if ( $action == 'plugin_information' && isset( $res->slug ) && $res->slug == 'your-plugin-slug' ) { if ( $res->version == '1.0.0' ) { $res->version = '1.0.1'; } } return $res; } add_filter( 'plugins_api_result', 'hide_specific_plugin_version', 10, 3 );
In this example, we hide a specific version of a plugin. If the action is ‘plugin_information’, the slug matches our target plugin, and the version is ‘1.0.0’, we change the version to ‘1.0.1’.
Add custom tags to plugins
function add_custom_tags_to_plugins( $res, $action, $args ) { if ( $action == 'query_plugins' ) { foreach ( $res->plugins as $plugin ) { if ( $plugin->slug == 'your-plugin-slug' ) { $plugin->tags['custom_tag'] = 'Custom Tag'; } } } return $res; } add_filter( 'plugins_api_result', 'add_custom_tags_to_plugins', 10, 3 );
This example demonstrates how to add custom tags to specific plugins. If the action is ‘query_plugins’ and the plugin’s slug matches our target plugin, we add a new tag to the tags
array.