apply_filters( ‘plugin_action_links’, string[] $actions, string $plugin_file, array $plugin_data, string $context )

Filters the action links displayed for each plugin in the Plugins list table.


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.
Path to the plugin file relative to the plugins directory.
An array of plugin data. See get_plugin_data() and the 'plugin_row_meta' filter for the list of possible values.
The plugin context. By default this can include 'all', 'active', 'inactive', 'recently_activated', 'upgrade', 'mustuse', 'dropins', and 'search'.


$actions = apply_filters( 'plugin_action_links', $actions, $plugin_file, $plugin_data, $context );


4.9.0The 'Edit' link was removed from the list of action links.
2.6.0The $context parameter was added.

User Contributed Notes

  1. Skip to note 3 content
     * Add settings link to plugin actions
     * @param  array  $plugin_actions
     * @param  string $plugin_file
     * @since  1.0
     * @return array
    function add_plugin_link( $plugin_actions, $plugin_file ) {
        $new_actions = array();
        if ( basename( plugin_dir_path( __FILE__ ) ) . 'comment-limiter.php' === $plugin_file ) {
            $new_actions['cl_settings'] = sprintf( __( '<a href="%s">Settings</a>', 'comment-limiter' ), esc_url( admin_url( 'options-general.php?page=comment-limiter' ) ) );
        return array_merge( $new_actions, $plugin_actions );
    add_filter( 'plugin_action_links', 'add_plugin_link', 10, 2 );

    Here is a very simple and easy way of how to append a new settings link in your plugin links on the plugins panel of your WordPress

  2. Skip to note 4 content

    Remove Delete Plugin Action Link
    Removes plugin Deletion action from the Plugin list.

    Replace ‘plugin-folder-name/plugin.php’ with the plugin name you want to remove action for.
    For Ex. 'plugin-folder-name/plugin.php' => 'akismet/akismet.php'

    add_filter( 'plugin_action_links', 'disable_plugin_deletion', 10, 4 );
    function disable_plugin_deletion( $actions, $plugin_file, $plugin_data, $context ) {
        // Remove delete action link for plugins
        if ( array_key_exists( 'delete', $actions ) && in_array( $plugin_file, array(
        ) ) )
            unset( $actions['delete'] );
        return $actions;

You must log in before being able to contribute a note or feedback.