WP Manifestindependent plugin directory
manifest / admin / up-bulk-plugins-installer

Up Bulk Plugin Installer

Installe, active et met à jour automatiquement une sélection de plugins et thèmes essentiels

★ 1stars
v1.5.2latest · 10mo ago

Install

Download source zip No release zip yet

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.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Installe, 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

  • 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.md décrivant les endpoints disponibles.
  • Installation de fonctionnalités PHP GitHub directement dans functions.php (avec include automatique) ou dans mu-plugins/.
  • Support d’onglets multiples basés sur des manifest.json pour 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> (ou wp-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.com et les téléchargements ZIP).

Installation

  1. Copier le dossier du plugin dans wp-content/plugins/up-bulk-plugins-installer/.
  2. 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’un require_once automatique dans functions.php), ou copier dans wp-content/mu-plugins/ pour une activation globale.

Patterns via manifest.json

  • Chaque onglet manifest est défini dans le tableau $github_manifest_tabs du plugin et peut contenir plusieurs dépôts.
  • Pour chaque dépôt, le plugin lit manifest.json (structure patterns) et affiche les entrées slug, name, description, categories, preview, files et install.
  • 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 /sets retourne l’ensemble des sets disponibles (slug, nom, items, méta).
    • POST /sets/<slug>/install déclenche l’installation du set ciblé, avec prise en charge optionnelle de manifest_target pour forcer la destination.
  • L’accès requiert un compte possédant la capacité manage_options (nonce X-WP-Nonce ou authentification basique en local).
  • Une page dédiée dans l’administration (Doc API REST) résume ces informations, complétée par le fichier API.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_url de la release la plus récente.
  • Sinon: fallback sur main.zip, puis master.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 Version depuis 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/master existe.
  • 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/ et wp-content/themes/.
  • Installation de pattern incomplète: vérifier que les chemins files et install du manifest.json correspondent à 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.

Tag
Published
v1.5.2 latest
Dec 19, 2025 10mo ago
Oct 30, 2025 1 year ago
Oct 21, 2025 1 year ago
Oct 21, 2025 1 year ago

These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.