Comment éviter les conflits de noms de plug-ins de la notification de mise à niveau?

4

J'ai préparé un hack rapide en tant que plug-in pour ajouter Google Analytics à mon site. Il a été nommé "Google Analytics" et, bien entendu, WP m'a proposé de mettre à niveau mon plug-in v0.1 vers un plug-in aléatoire à partir du référentiel de plug-ins.

Je me rappelle vaguement avoir été soulevé à quelques reprises autour des WP 2.7 à 3.0. Existe-t-il une nouvelle API disponible quelque part pour désactiver cela, ou le seul moyen de l'éviter est-il de préfixer les noms de plug-in (pas leur nom de fichier, mais leur nom réel, comme indiqué dans l'écran Plugins) pour les rendre uniques?

Dans mon cas d'utilisation spécifique, le plug-in se trouve dans mc-ga/mc-ga.php et s'appelle "Google Analytics", avec quelques autres champs de méta au début de l'en-tête du fichier du plug-in. WP génère un avis de mise à jour basé sur "Google Analytics" (je ne pouvais pas localiser un fichier plug-in mc-ga.php dans le référentiel).

Est-ce que WP permet d'ajouter un champ supplémentaire que je ne connais pas, par ex. une URL de dépôt ou quelque chose de vraiment unique, afin d'éviter de tels conflits?

    
posée Denis de Bernardy 29.10.2013 - 11:07

4 réponses

5

Vous pouvez supprimer votre plug-in de la liste updateble avec:

add_action( 'plugins_loaded', function(){
    add_filter( 'site_transient_update_plugins', function ( $value ) 
    {
        if( isset( $value->response['google-analytics/google-analytics.php'] ) )
            unset( $value->response['google-analytics/google-analytics.php'] );
        return $value;
    });
});

L'ajout de ce filtre éliminera complètement notre plugin du même nom des vérifications de mise à jour. Et cela suppose que nous effectuions les mises à jour manuellement via de simples téléchargements FPT ou similaires. Mais il existe de nombreux facteurs, comme indiqué dans si je renomme un plugin (dans son fichier php principal), ai-je toujours des notifications de mise à jour? . Selon la description de l'OP (même nom, slug différent), sans utiliser de filtre, le mieux est peut-être de définir l'en-tête du plugin Version sur un nombre supérieur ou d'utiliser un nombre moins conventionnel tel que yyyy.mm.dd .

Si nous définissons notre propre compte-rendu , je pense qu'il n'y aura pas de conflit.

    
réponse donnée brasofilo 29.10.2013 - 11:34
0

Voici ce que je suggère: avant de créer votre plugin, vérifiez d'abord si le nom que vous allez donner existe déjà dans référentiel de plugins WordPress . . Sinon, vous pouvez avancer et développer le plugin.

Si cela existe, attribuez un nom différent à votre plugin. Étant donné que la mise à niveau est basée sur le nom, vous ne pouvez pas gérer deux plug-ins différents portant le même nom. WordPress effectue cette mise à niveau automatiquement à partir du référentiel officiel.

    
réponse donnée sun 29.10.2013 - 11:36
0

Ajouter celui-ci à la postérité, au cas où quelqu'un d'autre en aurait besoin:

if (!defined('STRICTER_PLUGIN_UPDATES')) define('STRICTER_PLUGIN_UPDATES', false);

# ============
# WP Updates
# ============

if (STRICTER_PLUGIN_UPDATES) :

# - Drop plugin upgrades when the slugs don't match

add_filter('site_transient_update_plugins', function($updates) {
    if (!$updates->response) return $updates;

    foreach ($updates->response as $key => $response) {
        $slug = strpos($key, '/') !== false ? dirname($key) : basename($key, '.php');
        if ($slug != $response->slug) {
            unset($updates->response[$key]);
        }
    }

    return $updates;
});

endif; # STRICTER_PLUGIN_UPDATES
    
réponse donnée Denis de Bernardy 29.10.2013 - 14:02
0

Si vous avez un plug-in personnalisé pour un site, donnez-lui le nom du site comme préfixe.

Nous n'allons certainement pas autoriser un plugin nommé "Example.com - Google Analytics" dans le répertoire WordPress.org.

De plus, ajoutez un champ "Plugin URI" à l’en-tête du plugin. L'URI du plug-in est utilisé dans le cadre du processus de correspondance et fournit quelque chose de plus unique que le nom avec lequel faire correspondre.

    
réponse donnée Otto 29.10.2013 - 14:55

Lire d'autres questions sur les étiquettes