Utilisation de la bibliothèque d'activation du plug-in TGM dans vos thèmes

Les thèmes ne sont pas censés être fonctionnels, mais en tant que développeurs de thèmes, nous devons principalement inclure certaines fonctionnalités pour améliorer notre thème et en faire une fonction, vous savez, fonctionnelle.. 

Dans ce tutoriel, nous allons jeter un coup d'œil sur le terme "territoire du plugin" et apprendre à utiliser un outil fantastique écrit par Thomas Griffin: la bibliothèque d'activation de plug-in TGM.

Fonctionnalité de thème: envahir le territoire du plugin

Les thèmes sont destinés à changer la conception de votre site Web WordPress. Idéalement, il devrait être visuel. Mais en cet âge d'or de WordPress, les développeurs de thèmes incluent souvent des fonctionnalités fonctionnelles dans leurs thèmes afin de rester compétitifs sur le marché. C'était censé l'être, mais c'est.

C'est l'invasion du territoire du plugin. Nous pouvons définir le "territoire du plugin" en termes simples: Les parties fonctionnelles du code sont à l’intérieur des frontières de ce territoire. Chaque morceau de code qui modifie les fonctionnalités de votre site Web doit être servi comme un plugin, s'il n'a pas déjà été servi dans le noyau WordPress.. 

Dans un de mes précédents articles (dans la série "Making the Perfect WordPress Theme"), j'ai mentionné le règle de base du "territoire du plugin":

Si la fonctionnalité concerne le apparence visuelle du site Web, il devrait être dans le thème, mais s'il s'agit de la fonctionnalité d'un site Web, il devrait être inclus en tant que plugin séparé.

Assez facile, à droite? 

Bien que les gens aient toujours tendance à coder en dur des éléments fonctionnels dans leurs thèmes, les répertoires de thèmes (tels que WordPress.org et ThemeForest) n'acceptent pas les thèmes envahissant le "territoire du plugin". Il est donc devenu problématique de proposer des fonctionnalités avec des thèmes.

Heureusement, il existe une solution assez simple qui ne va pas à l’encontre de la règle du "territoire du plugin".

Présentation de la bibliothèque d'activation du plugin TGM

TGM Plugin Activation est une bibliothèque légère destinée à regrouper des thèmes avec des plug-ins. L'idée est simple: lorsqu'un utilisateur installe votre thème, il lui installe des plugins à partir de WordPress.org, d'un site Web externe ou du dossier de thèmes. Voici ce que Thomas Griffin, le créateur de la bibliothèque, définit ce petit outil pratique:

Activation du plugin TGM est une bibliothèque PHP qui vous permet de demander ou de recommander facilement des plugins pour vos thèmes WordPress (et vos plugins). Il permet à vos utilisateurs d’installer et même d’activer automatiquement des plugins de manière singulière ou en vrac à l’aide de classes, fonctions et interfaces WordPress natives. Vous pouvez référencer des plugins pré-packagés, des plugins à partir du référentiel de plugins WordPress ou même des plugins hébergés ailleurs sur Internet..

C'est probablement la solution la plus intelligente au problème de "l'invasion du territoire du plugin". Et c'est assez facile à appliquer aussi. 

Regardons!

Installation de TGM Plugin Activation

L'installation de TGM Plugin Activation est ridiculement facile. Il suffit de suivre ces étapes:

  • Téléchargez la bibliothèque d'activation de plug-in TGM à partir de la section "Télécharger" de la page..
  • Ouvrez le fichier zip et extrayez class-tgm-plugin-activation.php dans votre dossier de thème (où que vous soyez).
  • Ouvrez votre thème functions.php déposer et utiliser le Demandez une fois() fonction pour, ainsi, exiger le fichier de classe (une fois) dans votre thème.
  • Créez une fonction pour configurer l’activation du plug-in TGM et raccordez-la à tgmpa_register via le add_action () une fonction.
  • Terminé!

C'est tellement simple que vous n'avez même pas besoin de code PHP compliqué pour exiger ou recommander des plugins. Regardez le code ci-dessous:

À partir de maintenant, vous pouvez demander à vos utilisateurs d’installer de nouveaux plugins en configurant $ plugins variable dans la fonction que vous venez de créer. 

Voyons comment c'est fait.

Installer des plugins avec l'activation de plugins TGM

Comme vous pouvez le voir ci-dessus, le $ plugins variable est un tableau. Et pour définir les plugins à installer, vous devez créer des tableaux au sein de ce tableau (vous pouvez donc définir leurs propres paramètres). Ça a l'air dur, mais ce n'est pas:

Il y a quelques paramètres à utiliser:

  • prénom (chaîne, obligatoire) - Le nom du plugin.
  • limace (string, required) - Le slug du plugin (généralement le nom de son dossier).
  • Champs obligatoires (boolean, required) - S'il est défini sur vrai, votre thème "nécessitera" le plugin. Si faux, le thème le "recommandera".
  • la source (chaîne, parfois requise) - La source du plugin. S'il s'agit d'un plugin WordPress.org, ce paramètre ne doit pas être utilisé; sinon, c'est obligatoire.
  • version (chaîne, facultatif) - La version minimale requise pour le plugin. Par exemple; Si l'utilisateur du thème a déjà installé le plug-in requis mais qu'il n'a pas le numéro de version minimal que vous avez spécifié, TGM Plugin Activation avertit l'utilisateur de le mettre à jour..
  • force_activation (booléen, facultatif) - Si défini sur vrai, l'utilisateur ne pourra pas désactiver le plugin tant que votre thème est actif. Un peu gênant mais cela peut être nécessaire dans certains scénarios.
  • force_deactivation (booléen, facultatif) - Si défini sur vrai, le plugin sera désactivé une fois que l'utilisateur aura changé de thème.
  • external_url (chaîne de caractères, facultatif) - S'il est défini, le nom du plug-in sera lié à cette adresse dans la notification d'exigence du plug-in..

Vous avez trois options pour que vos utilisateurs installent les plugins avec TGM Plugin Activation: Vous pouvez exiger un plugin à partir du répertoire de plugins WordPress, d’une source externe (votre serveur ou un CDN par exemple), ou de votre dossier de thèmes (comme /my-theme/plugins/shortcodes.zip).

Requérir un plugin de WordPress.org

 'BuddyPress', 'slug' => 'buddypress', 'required' => false, // ce plugin est recommandé)); ?>

Requérir un plugin d'une source externe

 'My Awesome Plugin', 'slug' => 'mon-awesome-plugin', 'source' => 'http://files.my-website.com/my-awesome-plugin.zip', 'required' = > true, // ce plugin est requis 'external_url' => 'http://my-website.com/introducing-my-awesome-plugin', // page de mon plugin 'force_deactivation' => true, // désactivation ce plugin lorsque l’utilisateur passe à un autre thème)); ?>

Requérir un plugin du répertoire thématique

 'Mon curseur super élégant', 'slug' => 'mon curseur super élégant', 'source' => get_stylesheet_directory (). '/lib/plugins/my-super-sleek-slider.zip', // La source "interne" du plug-in. 'required' => true, // ce plugin est requis 'version' => '1.2', // l'utilisateur doit utiliser la version 1.2 (ou supérieure) de ce plugin 'force_activation' => false, // ce plugin est en cours rester activé sauf si l’utilisateur passe à un autre thème)); ?>

Configuration de l'activation du plug-in TGM

Remarquez le tgmpa () fonctionner avec deux paramètres à la fin de notre exemple de code? Le deuxième paramètre est le $ config variable qui se trouve être aussi un tableau, tout comme le $ plugins paramètre. Comme son nom l’indique, vous pouvez configurer la bibliothèque d’activation de plug-in TGM avec ce tableau. Il possède également son propre ensemble d'options que vous devez définir:

  • identifiant (string) - Un identifiant unique pour la bibliothèque d'activation du plugin TGM que vous avez implémenté dans votre thème. C'est en fait très important: si un autre plug-in utilise également TGM Plugin Activation, les différents identifiants éviteraient les conflits..
  • default_path (chaîne) - Le chemin absolu par défaut pour les plugins dans votre thème. Lorsque vous définissez cette option, vous pouvez simplement utiliser le nom du fichier ZIP comme nom de fichier. la source paramètre pour votre plugin.
  • menu (string) - Le slug de menu pour la page d'installation du plugin.
  • has_notices (booléen) - Si défini sur vrai, les avis d'administration sont affichés pour les plugins requis / recommandés.
  • licenciable (booléen) - Si défini sur vrai, l'utilisateur peut "rejeter" les avis.
  • licencier_msg (chaîne) - Si le licenciable Si l'option est définie sur false, ce message s'affichera au-dessus de la notification de l'administrateur..
  • is_automatique (booléen) - Si défini sur vrai, les plugins seront activés après que l'utilisateur accepte de les installer.
  • message (string) - HTML facultatif à afficher avant la table des plugins.
  • des cordes (tableau) - Encore un autre tableau qui comprend les messages à afficher. Vous pouvez également les définir en tant que chaînes traduisibles. Vérifiez exemple.php file pour voir la liste complète des chaînes de message.
 'mytheme-tgmpa', // votre identifiant TGMPA unique 'default_path' => get_stylesheet_directory (). '/ lib / plugins /', // chemin absolu par défaut 'menu' => 'mytheme-install-required-plugins', // menu slug 'has_notices' => true, // Affiche les notifications de l'administrateur 'licenciables' => false , // les avis ne sont PAS rejetables 'rejet_msg' => 'J'ai vraiment, vraiment besoin de vous pour installer ces plugins, d'accord?', // ce message sera affiché en haut de nag 'is_automatic' => true, // automatiquement activer les plugins après l'installation 'message' => '', // message à afficher juste avant la table des plugins' strings '=> array (); // Le tableau de chaînes de messages utilisé par TGM Plugin Activation); ?>

Tout emballer

Comme vous pouvez le constater, il n’est pas du tout impossible d’offrir des fonctionnalités avec des thèmes WordPress - il suffit de penser aux utilisateurs lorsqu’ils passent de votre thème à un autre. La bibliothèque d’activation de plug-in TGM offre un moyen très astucieux de la lire à la livre..

Que pensez-vous de cet outil? L'avez-vous déjà utilisé ou avez-vous l'intention de l'utiliser à l'avenir? Dites-nous ce que vous pensez en commentant ci-dessous. Et si vous avez aimé cet article, n'oubliez pas de le partager avec vos amis!