J'ai créé un plugin que je donnerai à certains utilisateurs pour tester en téléchargeant manuellement le fichier Zip. Je souhaite plus tard héberger le plugin dans le répertoire des plugins WordPress.org, mais je veux éviter que les utilisateurs n'aient à désinstaller mon plugin pour installer celui hébergé dans le répertoire car j'ai du code dans mon programme de désinstallation qui supprime tous les termes, etc. que mon plugin ajoute.
Existe-t-il un moyen de faire WordPress suivre un plugin dans le répertoire officiel au lieu d'un zip téléchargé localement?
Tant que tout a été fait selon WP meilleures pratiques, toutes vos versions installées manuellement seront mises à jour de la même manière que celles installées à partir de wordpress.org
.
Le programme de mise à jour examine de nombreuses choses pour identifier votre plugin. Cependant, le plus important est l'URI du plugin (vous pouvez changer le répertoire de nombreux plugins et ils fonctionneront toujours), mais le nom et le slug sont également vérifiés. Après WP détecte qu'il a un plugin correspondant, il vérifiera la version et enverra les informations de mise à jour si nécessaire.
Edit 1 Sur la base d'un peu plus de recherche, je constate que la vérification de la mise à jour semble être effectuée par wordpress.org
À cette URL: http://api.wordpress.org/plugins/update-check/1.1/
Pour voir comment est structuré l'appel, vous pouvez consulter le code de base pour wp_update_plugins()
.
La raison pour laquelle votre plugin installé manuellement sera mis à jour est la même que la raison pour laquelle vous pouvez télécharger et installer manuellement un plugin à partir de wordpress.org
Et le voir recevoir les mises à jour dans le wp-admin
.
Il existe un moyen d'avoir un dossier de plug-in hébergé en privé qui sera mis à jour via le processus Admin, Mises à jour normal. C'est un peu complexe à mettre en place, mais je l'ai fait.
Les informations sont ici: https://github.com/YahnisElsts/plugin-update-checker#github-integration .
Je l'ai modifié pour utiliser une zone privée d'un domaine que je possède pour être le référentiel de code.