web-dev-qa-db-fra.com

Désactiver la mise à jour pour les plugins individuels

Est-il possible de désactiver les notifications de mise à jour pour des plugins spécifiques?

En tant que développeur de plug-in, j'ai installé certains plug-ins sur mon site personnel en utilisant la version svn trunk à des fins de test, mais les mêmes plug-ins sont disponibles à partir du site de plug-in. Dans ces cas, WP considère la version la plus récente comme étant la version la plus récemment publiée et tente en permanence de m'avertir de la disponibilité des mises à jour.

Je veux toujours voir les notifications de mises à jour sur d'autres plugins, mais il est fastidieux d'ignorer constamment la notification Updates (2) dans l'en-tête!

47
Caleb

Par exemple, si vous ne souhaitez pas que Wordpress affiche les notifications de mise à jour pour akismet, procédez comme suit:

function filter_plugin_updates( $value ) {
    unset( $value->response['akismet/akismet.php'] );
    return $value;
}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );
63
Hameedullah Khan

La réponse de Hameedullah Khan émettra un avertissement PHP. Incluez cette clause if à vérifier pour vous assurer qu'il s'agit bien d'un objet avant de réinitialiser la réponse pour ce plugin.

'Avertissement: tentative de modification de la propriété de non-objet'

Essayez ceci pour éviter les avertissements (code du fichier de plugin lui-même):

// remove update notice for forked plugins
function remove_update_notifications($value) {

    if ( isset( $value ) && is_object( $value ) ) {
        unset( $value->response[ plugin_basename(__FILE__) ] );
    }

    return $value;
}
add_filter( 'site_transient_update_plugins', 'remove_update_notifications' );

J'aime mettre cela dans le plugin actuel. Comme je n'ai jamais désactivé que les mises à jour sur un plugin parce que j'ai édité ou fourchi le code et que je ne veux pas perdre mes modifications sur une mise à jour, j'ai déjà édité le plugin et je ne crains donc pas de le modifier davantage. Cela garde mon fichier de fonctions un peu plus propre. Mais si vous le souhaitez, vous pouvez le mettre dans le fichier de fonctions et un avantage de cette méthode est que vous pouvez supprimer plusieurs plugins des mises à jour en ajoutant une autre ligne non définie pour ce plugin, comme ceci (code pour functions.php):

// remove update notice for forked plugins
function remove_update_notifications( $value ) {

    if ( isset( $value ) && is_object( $value ) ) {
        unset( $value->response[ 'hello.php' ] );
        unset( $value->response[ 'akismet/akismet.php' ] );
    }

    return $value;
}
add_filter( 'site_transient_update_plugins', 'remove_update_notifications' );
28
circlecube

Désactiver toutes les notifications de mise à jour avec le code

function remove_core_updates(){
        global $wp_version;return(object) array('last_checked'=> time(),'version_checked'=> $wp_version,);
    }
    add_filter('pre_site_transient_update_core','remove_core_updates');
    add_filter('pre_site_transient_update_plugins','remove_core_updates');
    add_filter('pre_site_transient_update_themes','remove_core_updates');

Code désactivera les notifications de mise à jour pour le noyau, les plugins et les thèmes WordPress.

2
Super Model