Jak znemožnit deaktivaci pluginů

V rubrice: Tipy & Triky | Obtížnost:

Pokud uděláte webovou stránku na WordPressu, často se stává, že její bytí či nebytí bezpodmínečně závisí na určitých pluginech. A pokud se o svůj výtvor nestaráte sami, mohlo by se stát, že je nějaký šťoura vypne a komplet tím zruší celý web. To by samozřejmě bylo velice nepříjemné, a proto je třeba se proti tomu účinně bránit.

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.

V rubrice: Tipy & Triky | Obtížnost: