Nicht selten setzt man WordPress für Nicht-Administratoren ein, sei es als CMS oder Weblog, – darum sollten auch nicht alle Nutzerrollen eine Informationen über Plugin- und Core-Updates bekommen.
Um dies einfach und schnell zu realisieren, nutze ich eine kleine Abfrage in der functions.php
des Themes. Mit Hilfe des Objektes edit_plugins
(Rechte für Userlevel und Objekte lassen sich im Codex nachlesen) prüfe ich, ob es sich um einen User handelt, der diese Möglichkeit besitzt und die im Standard nur Administratoren zu Teil wird. Damit stelle ich sicher, dass auch nur diese Nutzer die Information über Aktualisierungen von Plugins und dem Core bekommen.
Nicht jeder will die Form der Funktionalitäten in ein Theme integrieren, wo sie sicher auch nicht unbedingt perfekt aufgehoben sind. Alternativ werde ich diese Lösung im Plugin „Secure WordPress“ integriert, so dass man sie dort über eine Auswahlseite aktivieren kann.
/**
* remove core-Update-Information
* @rights: http://codex.wordpress.org/Roles_and_Capabilities
*/
if ( !current_user_can( 'edit_plugins' ) ) {
// core update
add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ) );
add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) );
// plugin update
add_action( 'admin_menu', create_function( '$a', "remove_action( 'load-plugins.php', 'wp_update_plugins' );" ) );
add_action( 'admin_init', create_function( '$a', "remove_action( 'admin_init', 'wp_update_plugins' );" ), 2 );
add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_update_plugins' );" ), 2 );
add_filter( 'pre_option_update_plugins', create_function( '$a', "return null;" ) );
}
Wer also den obigen Codeschnippsel nicht nutzen möchte und eine komfortable Verwaltung sucht, der wartet bitte ein wenig – die aktuelle Version kommt sicher in den nächsten Tagen der nutzt das Plugin Secure WordPress, in dem ich die Erweiterung nun drin habe.