Jak znemožnit deaktivaci pluginů


Pomocí dnešního snippetu vytvoříme soubor základních pluginů, které nepůjde smazat, upravit ani deaktivovat.

Script je následující:

add_filter( 'plugin_action_links', 'lock_plugins', 10, 4 );

function lock_plugins( $actions, $plugin_file, $plugin_data, $context ) {
    if ( array_key_exists( 'edit', $actions ) )
        unset( $actions['edit'] );
    if ( array_key_exists( 'deactivate', $actions ) && in_array( $plugin_file, array(
        'akismet/akismet.php',
        'all-in-one-seo-pack/all_in_one_seo_pack.php'
    )))
    unset( $actions['deactivate'] );
    return $actions;
}

V tomto konkrétním příkladu (který vložíte standardně do functions.php) byly nastaveny “nevypnutelné” pluginy Akismet a All in one seo pack. Přidávat či ubírat je můžete dle libosti.