plugin_action_links_{$plugin_file} WordPress Action Hook
The plugin_action_links_{$plugin_file} hook allows you to add links to the plugin listing page. This can be useful for adding links to the settings page or for providing support information.
apply_filters( "plugin_action_links_{$plugin_file}", string[] $actions , string $plugin_file , array $plugin_data , string $context ) #
Filters the list of action links displayed for a specific plugin in the Plugins list table.
Description
The dynamic portion of the hook name, $plugin_file
, refers to the path to the plugin file, relative to the plugins directory.
Parameters
- $actions
(string[])An array of plugin action links. By default this can include 'activate', 'deactivate', and 'delete'. With Multisite active this can also include 'network_active' and 'network_only' items.
- $plugin_file
(string)Path to the plugin file relative to the plugins directory.
- $plugin_data
(array)An array of plugin data. See
get_plugin_data()
and the 'plugin_row_meta' filter for the list of possible values.- $context
(string)The plugin context. By default this can include 'all', 'active', 'inactive', 'recently_activated', 'upgrade', 'mustuse', 'dropins', and 'search'.
More Information
Applied to the list of links to display on the plugins page (beside the activate/deactivate links).
Basic Example:
add_filter( 'plugin_action_links_' . plugin_basename(__FILE__), 'add_action_links' ); function add_action_links ( $actions ) { $mylinks = array( '<a href="' . admin_url( 'options-general.php?page=myplugin' ) . '">Settings</a>', ); $actions = array_merge( $actions, $mylinks ); return $actions; }
When the ‘plugin_action_links_(plugin file name)’ filter is called, it is passed one parameter: the links to show on the plugins overview page in an array.
The (plugin file name) placeholder stands for the plugin name that you can normally get from the magic constant __FILE__.
add_filter( 'plugin_action_links_' . plugin_basename(__FILE__), 'my_plugin_action_links' ); function my_plugin_action_links( $actions ) { $actions[] = '<a href="'. esc_url( get_admin_url(null, 'options-general.php?page=gpaisr') ) .'">Settings</a>'; $actions[] = '<a href="http://wp-buddy.com" target="_blank">More plugins by WP-Buddy</a>'; return $actions; }
Will result in something like this:
We can also edit the link to put them in front of the deactivate and edit link. Here is an example:
add_filter( 'plugin_action_links', 'ttt_wpmdr_add_action_plugin', 10, 5 ); function ttt_wpmdr_add_action_plugin( $actions, $plugin_file ) { static $plugin; if (!isset($plugin)) $plugin = plugin_basename(__FILE__); if ($plugin == $plugin_file) { $settings = array('settings' => '<a href="options-general.php#redirecthere">' . __('Settings', 'General') . '</a>'); $site_link = array('support' => '<a href="http://thetechterminus.com" target="_blank">Support</a>'); $actions = array_merge($settings, $actions); $actions = array_merge($site_link, $actions); } return $actions; }
This will work with both single file plugin and a folder plugin:
Source
Changelog
Version | Description |
---|---|
4.9.0 | The 'Edit' link was removed from the list of action links. |
2.7.0 | Introduced. |