Wordpress

WordPress – Plugin Update Info ausschalten

Heute zeige ich euch wie man die Update Information für ein Plugin abschaltet.

Es ist jedoch zu Empfehlen die Updates immer auf dem neusten Stand zu halten, damit Sicherheitsrisiken durch veraltete Plugins nicht ausgenutzt werden können.

Es gibt jedoch ein paar Anwendungsfälle in denen man die Plugins gar nicht Updaten möchte:

  1. Es wird von diesem Plugin eine ganze spezielle Version benötigt.
  2. Der Plugin Slug (mit dem sucht das Plugin auf WordPress.org nach Updates) ist auf WordPress.org schon von einem anderem Plugin belegt. Somit wäre ein Update kein Update, sondern ein überschreiben mit einem anderen Plugin.
  3. Man möchte, dass z.B. der Kunde bestimmte Plugins per se nicht updaten kann.
  4. Man hat Änderungen am Plugin vorgenommen die bei einem Update überschrieben werden.

Um die Info auszuschalten gibt es mehrere Möglichkeiten. Ich erläutere ich ein paar davon:

1. Mit einem kleinen Code in die Haupt PHP Datei des Plugins bringt man die Aktualisierungsfunktion des Plugins zum Schweigen. Zu beachten gilt das hier noch bei „name-des-plugins/name-des-plugins.php“ der richtige Pfad zum Plugin angegeben werden muss (zb. „akismet/akismet.php“).

 

// Deactivate Update Feature of this Plugin
add_filter('site_transient_update_plugins', 'dd_remove_update_nag');
function dd_remove_update_nag($value) {
unset($value->response['name-des-plugins/name-des-plugins.php']);
return $value;
}

 

2. Über ein Lock Plugin und die functions.php

Dieses Plugin kommt von: https://github.com/daggerhart/lock-plugins

Als erstes erstellt ihr in eurem Plugins Verzeichnis einen neuen Ordner mit dem Namen „lock-plugins“. In diesem Ordner erstellt Ihr dann eine Datei mit dem Namen „lock-plugins.php“ und kopiert folgenden Inhalt in diese Datei:

 

/*
* Plugin Name: Lock plugin updates
* Description: Prevent plugin updates
* Version: 1.0.0
* Author: daggerhart
*/
add_filter( 'http_request_args', 'lock_plugins_http_request_args', 5, 2 );
/**
* Prevent lookup of certain plugin updates
* Source: https://markjaquith.wordpress.com/2009/12/14/excluding-your-plugin-or-theme-from-update-checks/
*
* @param $request
* @param $url
*
* @return mixed
*/
function lock_plugins_http_request_args( $request, $url ) {
if ( FALSE === strpos( $url, '//api.wordpress.org/plugins/update-check' ) ) {
return $request; // Not a plugin update request. Bail immediately.
}
if ( empty($request['body']['plugins']) ){
return $request;
}
$plugins = json_decode( $request['body']['plugins'], true );
// get a list of locked plugins from somewhere
$locked_plugins = apply_filters('lock_plugins-locked_plugins', array());
foreach( $locked_plugins as $locked_plugin_basename )
{
$active_index = array_search( $locked_plugin_basename, $plugins['active'] );
unset( $plugins['active'][ $active_index ] );
unset( $plugins['plugins'][ $locked_plugin_basename ] );
}
$request['body']['plugins'] = wp_json_encode( $plugins );
return $request;
}

 

Als nächstes öffnet Ihr eure functions.php und tragt dort folgenden Code ein:

 

add_filter('lock_plugins-locked_plugins', function($plugins){
$plugins[] = 'akismet/akismet.php';
return $plugins;
});

 

Bei ‚akismet/akismet.php‘ tragt ihr den Pfad zum Plugin ein.
Nun solltet Ihr für dieses Plugin keine Aktualisierungsmeldungen mehr erhalten.

Weitere nützliche Infos rund um Theme Update Filter:

https://codex.wordpress.org/de:Automatische_Hintergrund_Updates_einstellen#Plugin_.26_Theme_Updates_per_Filter