Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/nicolascaen/up-bulk-plugins-installer/archive/refs/heads/Master.zipInstalle, active et met à jour automatiquement une sélection de plugins, thèmes et fonctionnalités (patterns, snippets) essentiels depuis WordPress.org ou GitHub, via une page d’administration dédiée.
Sommaire
- Fonctionnalités
- Prérequis
- Installation
- Utilisation
- API REST
- Mises à jour depuis GitHub
- Détection automatique du fichier principal
- Gestion des versions locales
- Permissions et sécurité
- Limitations connues
- Dépannage
Fonctionnalités
- Installation et activation de plugins depuis WordPress.org.
- Installation, activation et mise à jour de plugins et thèmes depuis GitHub (via la dernière release ou la branche principale si aucune release n’existe).
- Détection automatique du fichier principal d’un plugin GitHub.
- Indication de l’état actuel: installé/actif, installé/inactif, non installé.
- Comparaison de version locale vs dernière release GitHub et bouton de mise à jour.
- Activation rapide d’un plugin installé ou d’un thème installé.
- Création de sets multi-sources (plugins WP.org, dépôts GitHub, thèmes, fonctionnalités, patterns) directement depuis leurs tableaux respectifs.
- Enregistrement, chargement et édition de sets au format JSON avec ciblage optionnel des destinations (
theme,mu-plugins,plugins) et chemins personnalisés. - Page de documentation intégrée pour l’API REST et fichier
API.mddécrivant les endpoints disponibles. - Installation de fonctionnalités PHP GitHub directement dans
functions.php(avec include automatique) ou dansmu-plugins/. - Support d’onglets multiples basés sur des
manifest.jsonpour déployer des patterns front-end (fichiers JSON, CSS, JS, PHP, etc.) dans le thème actif. - Normalisation des dossiers installés depuis GitHub: renommage automatique des archives extraites en
wp-content/plugins/<repo>(ouwp-content/themes/<repo>).
La page d’administration est disponible dans: Tableau de bord > Installer Plugins.
Prérequis
- WordPress 6.x (recommandé).
- Rôle administrateur (capacité
manage_options). - Accès réseau sortant depuis le serveur (pour
api.github.comet les téléchargements ZIP).
Installation
- Copier le dossier du plugin dans
wp-content/plugins/up-bulk-plugins-installer/. - Activer le plugin depuis
Extensions > Extensions installées.
Utilisation
Accédez au menu Installer Plugins pour voir trois sections avec des tableaux d’actions.
Plugins WordPress.org
- Le tableau liste des plugins prédéfinis.
- Pour chaque plugin:
- Actif: indicateur ✅.
- Installé mais inactif: bouton Activer.
- Non installé: bouton Installer qui télécharge et active le plugin.
Plugins GitHub
- Le tableau liste des dépôts GitHub configurés.
- Pour chaque dépôt:
- Le plugin est détecté par son slug (nom du repo) et son fichier principal (auto).
- États: ✅ actif, ⚠️ installé mais inactif, ou non installé.
- Boutons: Installer, Activer, Mettre à jour (si une version plus récente est disponible).
Thèmes GitHub
- Le tableau liste les dépôts GitHub configurés en tant que thèmes.
- États: ✅ actif, ⚠️ installé mais inactif, ou non installé.
- Boutons: Installer, Activer, Mettre à jour (si une version plus récente est disponible).
Fonctionnalités GitHub
- Table dédiée pour installer des fichiers PHP provenant de dépôts GitHub sélectionnés.
- Deux options pour chaque fonctionnalité: copier dans le dossier
functions/du thème actif (et ajout d’unrequire_onceautomatique dansfunctions.php), ou copier danswp-content/mu-plugins/pour une activation globale.
Patterns via manifest.json
- Chaque onglet manifest est défini dans le tableau
$github_manifest_tabsdu plugin et peut contenir plusieurs dépôts. - Pour chaque dépôt, le plugin lit
manifest.json(structurepatterns) et affiche les entréesslug,name,description,categories,preview,filesetinstall. - Un clic sur “Installer dans le thème” télécharge le dépôt, copie les fichiers/dossiers indiqués vers les emplacement cibles (
patterns/,assets/css/,assets/js/,templates/, etc.) du thème actif et affiche un récapitulatif des éléments copiés. - Les onglets peuvent être enrichis depuis un thème ou un plugin externe via le filtre
pubpi_manifest_tabs.
Ajouter des dépôts via le filtre pubpi_manifest_tabs
Copiez ce snippet dans le functions.php de votre thème ou dans un plugin spécifique pour ajouter un onglet supplémentaire et son dépôt associé :
add_filter('pubpi_manifest_tabs', function (array $tabs) {
$tabs['custom-library'] = [
'label' => 'Bibliothèque interne',
'manifests' => [
'organisation/patterns-repo' => [
'name' => 'Patterns internes',
'manifest' => 'build/manifest.json',
'branch' => 'main',
],
],
];
return $tabs;
});
Gestion des sets
- La colonne « Add set » présente dans chaque tableau permet de composer un set multi-sources via des cases à cocher.
- Les éléments sélectionnés peuvent recevoir une destination (
theme,mu-plugins,plugins) et, pour les patterns, un chemin personnalisé lorsque l’on crée un set. - Le formulaire « Sets » autorise l’enregistrement, la mise à jour et le chargement d’un set existant (stocké dans
config/sets/*.json). - Les sets sont sauvegardés avec leur slug, leur nom, l’ensemble des éléments choisis ainsi que la destination par défaut utilisée lors des installations REST.
API REST
- Deux endpoints sont exposés sous
up-bulk-plugins-installer/v1:GET /setsretourne l’ensemble des sets disponibles (slug, nom, items, méta).POST /sets/<slug>/installdéclenche l’installation du set ciblé, avec prise en charge optionnelle demanifest_targetpour forcer la destination.
- L’accès requiert un compte possédant la capacité
manage_options(nonceX-WP-Nonceou authentification basique en local). - Une page dédiée dans l’administration (
Doc API REST) résume ces informations, complétée par le fichierAPI.mdà la racine du plugin.
Mises à jour depuis GitHub
- Le plugin interroge
https://api.github.com/repos/{user}/{repo}/releases/latest. - Si une release existe: téléchargement via
zipball_urlde la release la plus récente. - Sinon: fallback sur
main.zip, puismaster.zip. - En mode mise à jour, l’ancienne version du dossier ciblé est supprimée puis remplacée par le contenu extrait.
Conseils:
- Publiez des tags sémantiques (ex:
v1.2.3) sur GitHub pour permettre la comparaison automatique des versions.
Détection automatique du fichier principal
Pour les plugins GitHub, si le fichier principal n’est pas spécifié, le plugin scanne les fichiers PHP à la racine du slug et détecte celui qui contient un en-tête WordPress valide (Plugin Name).
Gestion des versions locales
- Plugins: lecture de la
Versiondepuis l’en-tête du fichier principal. - Thèmes: lecture de la version depuis les métadonnées du thème installé.
- La comparaison s’appuie sur
version_compare().
Permissions et sécurité
- La page est accessible aux administrateurs (
manage_options). - Téléchargements et dézippage sont délégués aux APIs WordPress (
download_url,unzip_file,WP_Filesystem). - Les chemins et entrées utilisateurs sont assainis via les fonctions WordPress standard.
Limitations connues
- Les dépôts GitHub privés nécessitent une autre méthode d’authentification (non prise en charge nativement ici).
- La structure ZIP doit contenir le projet dans un dossier unique à la racine (convention GitHub). Un renommage automatique tente d’aligner le nom de dossier avec le slug.
- Les dépendances spécifiques de certains plugins/thèmes ne sont pas gérées automatiquement (composer, npm, build, etc.).
Dépannage
- Erreur de téléchargement GitHub: vérifier la connectivité serveur et les limitations réseau/pare-feu.
- Aucune release détectée: publier une release sur GitHub ou s’assurer que la branche
main/masterexiste. - Fichier principal introuvable: vérifier que l’en-tête du plugin contient bien
Plugin Name. - Problème de droits d’écriture: vérifier les permissions du système de fichiers sur
wp-content/plugins/etwp-content/themes/. - Installation de pattern incomplète: vérifier que les chemins
filesetinstalldumanifest.jsoncorrespondent à la structure réelle du dépôt et que le thème actif possède les sous-dossiers requis.
Auteur: GEHIN Nicolas Version du plugin: 1.5.2
Releases
4 releases.
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.