Il y a beaucoup de questions sur la façon de désactiver les mises à jour et/ou de supprimer les notifications de mise à jour. Mais toutes les solutions qui désactivent la mise à jour désactivent également les notifications de mise à jour.
Mais je veux désactiver la possibilité de mettre à jour tout en étant averti des mises à jour disponibles.
J'utilise actuellement define( 'DISALLOW_FILE_MODS', true );
Codex } _
Le problème, c’est qu’il désactive non seulement le processus de mise à jour, mais également les notifications.
Edit: Ok, je suis moi-même descendu dans le terrier du lapin. J'imagine que je devrais également préciser que je ne parle pas (uniquement) des mises à jour principales, mais aussi des plugins et des thèmes.
Si je comprends bien, c'est parce que, à /wp-admin/includes/update.php:250 , la fonction retourne plus tôt.
Je vois donc deux options:
update_plugins
qui annule le type d'objet plus je ne suis pas sûr des effets secondairesadmin_init
le type de réplication wp_plugin_update_rows
. J'ai essayé ça mais ça ne se ressemble toujours pas. Cela semble être quelque chose de plus, cela ne semble pas non plus être une façon très propre de le faire.EDIT: Il existe un ticket couvrant cette question au cas où vous voudriez y travailler: https://core.trac.wordpress.org/ticket/25219
Ajoutez le code suivant dans le functions.php
de votre thème enfant ou personnalisez-le pour l'activer/le désactiver facilement:
add_action( 'wp_before_admin_bar_render', 'wpse161696_toolbar_menu' );
add_action( 'admin_menu', 'wpse161696_updates' );
function wpse161696_toolbar_menu() { // Remove update menu item from the toolbar
global $wp_admin_bar;
$wp_admin_bar -> remove_menu( 'updates' );
}
function wpse161696_updates() { // Remove all updating related functions
remove_submenu_page( 'index.php', 'update-core.php' ); // Remove Update submenu
// Redirect to Dashboard if update page is accessed
global $pagenow;
$page = array(
'update-core.php',
'update.php',
'update.php?action=upgrade-plugin'
);
if ( in_array( $pagenow, $page, true ) ) {
wp_redirect( admin_url( 'index.php' ), 301 );
// wp_die( 'Updates are disabled.' ); // An error message can be displayed instead
exit;
}
}
Cela devrait vous donner quelque chose à travailler. Il supprime les liens de mise à jour de la barre latérale et de la barre d’outils du Tableau de bord tout en laissant les notifications de mise à jour activées.
Cependant, le update now sera toujours affiché sous chaque plugin, ce qui permettrait à l'utilisateur d'effectuer des mises à jour:
Une solution consiste à masquer le lien via CSS. Je ne pouvais pas tout à fait réussir cette partie, mais étant donné que cette question est très ancienne, je ne voulais pas perdre de temps non plus. J'ai senti que cette question méritait d'être réglée.