Plugin SVN & API de mise à jour - comment les plugins sont-ils identifiés?

12

Une chose qui n’a jamais été claire pour moi (surtout depuis que je n’ai pas soumis de plug-in au référentiel) est la manière dont son "ID" unique (slug) est généré (c.-à-d. cette liste ).

  1. S'agit-il d'un choix de l'auteur au moment de la soumission de SVN ou d'un modérateur?
  2. S'agit-il du nom du plugin désinfecté (titre)?
  3. Est-ce le plugin_basename ?
  4. S'agit-il du fichier plugin principal (sans le nom du répertoire)?
  5. Autre chose?

Je suis curieux de savoir quel attribut d'un plugin le lie à son homologue SVN (s'il en a un) pour l'API de mise à jour du plugin?

Je demande, en partie de par ma nature, de vouloir savoir, mais aussi comment faire en sorte (dans une certaine mesure) que mes propres plug-ins ponctuels ne se heurtent pas avec ceux du SVN.

Par exemple, s'il ne s'agissait que de 3) , je pourrais utiliser un nom de répertoire très unique, tout en conservant le nom de mon plugin (titre) court 'n sweet.

N.B. Bien que la convention de dénomination de fichier "standard" semble être [my-plugin-name]/[my-plugin-name].php , je me suis attachée à [my-plugin-name]/plugin.php .

Cela donne à tous mes plugins une certaine cohérence, il est clair que c'est le fichier "bootloader" (principal), et d'un point de vue mesquin, je déteste la répétition du nom du répertoire.

C’est une autre raison pour laquelle je pose la question, car 4) me ferait chier. De plus, j'aimerais connaître votre opinion sur ce "standard" aussi:)

    
posée TheDeadMedic 25.02.2012 - 12:30

2 réponses

7

Lors de la soumission d'un plugin, le slug devient le nom du plugin assaini, tel que soumis. Le "Nom" du plugin peut changer après cela, mais le slug reste toujours le même.

Lorsque WordPress doit rechercher une mise à jour de plug-in, il obtient toutes les informations d'en-tête du plug-in et le nom du répertoire dans lequel il se trouve, puis l'envoie à WordPress.org.

Trois facteurs sont actuellement utilisés pour essayer de faire correspondre les plug-ins du répertoire. Notez que je dis "actuellement", car cela change de temps en temps lorsque nous essayons d’améliorer les algorithmes de correspondance.

  1. Le nom du répertoire du plugin est souvent le "slug" du plugin. C'est du moins le cas si vous l'avez installé à partir du répertoire. Nous vérifions donc si un slug porte ce nom de répertoire. Ce n'est pas un bon indicateur, mais ça aide.

  2. Le "Nom" dans l'en-tête du plugin est également recherché, car Name doit être unique dans le répertoire du plugin. S'il n'y a pas de correspondance pour ce nom exact, le nom est alors assaini pour produire une limace, et nous recherchons également cette limace, juste au cas où. Cela ne fonctionne pas toujours.

  3. Le "Plugin URI" dans l'en-tête est également vérifié pour une correspondance. Puisque nous connaissons cette valeur pour tous les plugins du répertoire, cela peut être considéré comme raisonnablement unique pour chaque plugin. Il est donc conseillé aux auteurs de plugins de mettre un URI de plugin qui pointe vers un domaine qu’ils contrôlent et une URL unique pour le plugin.

Ces trois facteurs sont ensuite pondérés et le résultat final est renvoyé. Les pondérations utilisées pour chacun des trois reflètent un niveau de confiance dans l'exactitude des données. Par exemple, Nom a une valeur supérieure à plugin-directory-as-slug, car la plupart des auteurs ne modifient pas très souvent les noms des plug-ins. En effet, plugin-directory peut en réalité être n'importe quoi si l'utilisateur l'a installé manuellement ou quelque chose du genre.

Plus la correspondance entre ces trois éléments est étroite, plus il est probable que cela corresponde au plugin. Mais au moins une correspondance exacte doit être trouvée pour que tout résultat soit renvoyé.

Pour les plug-ins uniques personnalisés, j'ai tendance à utiliser le nom du site dans le nom même du plug-in. Cela m'aide aussi pour l'organisation. Donc, mon nom de plug-in unique pourrait être "ottopress.com - Correction d'un problème avec quoi que ce soit". Peu probable qu'un plugin du répertoire corresponde à votre domaine.

    
réponse donnée Otto 06.03.2012 - 17:14
2

Etant donné que l'entrée SVN est évidemment créée avant que vous ne validiez votre plug-in pour la première fois, elle est basée sur votre demande d'entrée initiale. Je ne sais pas si le processus est technique ou manuel, probablement un peu des deux.

À des fins de mise à jour, de nombreuses informations sont soumises et le référentiel tente de déterminer la correspondance - en fonction du nom du plug-in, du nom du répertoire, de la version actuelle et éventuellement davantage. Je ne sais pas si l'algorithme exact a déjà été publié.

    
réponse donnée Rarst 25.02.2012 - 13:53

Lire d'autres questions sur les étiquettes