web-dev-qa-db-fra.com

Supprimer le message "Time to upgrade" du tableau de bord

Jusqu'ici, j'ai utilisé le code suivant pour supprimer le message de mise à jour du tableau de bord ("WordPress 3.5 est disponible! Veuillez mettre à jour maintenant."):

remove_action('wp_version_check', 'wp_version_check');
remove_action('admin_init', '_maybe_update_core');
add_filter('pre_transient_update_core', create_function( '$a', "return null;"));

Cependant, cela ne semble plus fonctionner avec les versions actuelles de WordPress. Existe-t-il un nouveau moyen de supprimer ce message compatible avec les versions ultérieures de WordPress?

6
drake035

Comment masquer les mises à jour de WordPress

CSS

Le moyen peu technique de cacher quelque chose utilise css:

// Low-tech hiding of update-mesages
// source: http://wpsnipp.com/index.php/functions-php/hide-update-nag-within-the-admin/
function remove_upgrade_nag() {
   echo '<style type="text/css">
           .update-nag {display: none}
         </style>';
}
add_action('admin_head', 'remove_upgrade_nag');

Cela fonctionne plus ou moins, mais c’est beaucoup de travail de rechercher tous les endroits où WordPress affiche les messages.

Add_action

Une meilleure façon consiste à utiliser des actions. Les messages de mise à jour de wordpress-core (dans ce contexte, WordPress lui-même) sont déclenchés dans wp-admin/includes/update.php, ligne 84 core_update_footer et ligne 139 avec le grand nom update_nag. Nous pouvons utiliser des actions pour les désactiver:

//hide core updates notification in the dashboard
function hide_wp_update_nag() {
    remove_action( 'admin_notices', 'update_nag', 3 ); //update notice at the top of the screen
    remove_filter( 'update_footer', 'core_update_footer' ); //update notice in the footer
}
add_action('admin_menu','hide_wp_update_nag');

Comme alternative à:

add_action( 'admin_notices', 'update_nag', 3 );

Vous voudrez peut-être utiliser, pour plusieurs sites:

add_action( 'network_admin_notices', 'update_nag', 3 );

Les notifications du tableau de bord sont un peu plus difficiles, mais cela devrait faire l'affaire:

//hide plugin updates notification in the dashboard
function hide_plugin_update_indicator(){
    global $menu,$submenu;
    $menu[65][0] = 'Plugins';
    $submenu['index.php'][10][0] = 'Updates';
}
add_action('admin_menu', 'hide_plugin_update_indicator');

Bien que les avis de mise à jour soient masqués, il est toujours possible de voir que quelque chose doit être mis à jour dans les pages suivantes (et faire les mises à jour):

  • /wp-admin/update-core.php
  • /wp-admin/themes.php
  • /wp-admin/plugins.php

Désactiver les mises à jour

Si vous voulez complètement désactiver les mises à jour, utilisez:

//http://codex.wordpress.org/Transients_API
add_filter('pre_site_transient_update_core', create_function('$a', "return null;")); // disable core update
add_filter('pre_site_transient_update_plugins', create_function('$a', "return null;")); // disable plugin update
add_filter('pre_site_transient_update_themes', create_function('$a', "return null;")); // disable theme update

Cela désactivera complètement les mises à jour pour le noyau, les plugins et les thèmes.

Plugins

Vous pourriez mettre ce code dans une fonctionnalitéplugin , de sorte qu'il fonctionne dans tous les thèmes.

Quelques plugins prêts à l'emploi:

Prime

Pour savoir comment exclure des plugins spécifiques de la mise à jour:

10
Alexander Poslavsky