Comment fonctionnent réellement les cadres thématiques

Les cadres de thème peuvent être extrêmement puissants. Pour les utilisateurs non techniques de WordPress, ils permettent de créer un site unique ressemblant à un thème sur mesure. Pour les développeurs WordPress, ils peuvent vous aider à appliquer le principe DRY (ne vous répétez pas) et vous donner la possibilité de créer des sites personnalisés rapidement.

Si vous utilisez un framework tiers depuis un certain temps et que vous êtes frustré par le code saturé ou le manque de flexibilité, ou si vous souhaitez simplement contrôler votre code, créer votre propre framework de thème peut être la meilleure approche..

Dans cette série, vous apprendrez à créer votre propre framework de thèmes WordPress, que vous pourrez utiliser pour créer des sites pour vous-même ou vos clients, voire pour d'autres utilisateurs. Vous travaillerez à travers les étapes de la création du thème parent qui constitue la base de votre infrastructure, en ajoutant des fonctions supplémentaires, des points d'ancrage, etc. Vous apprendrez également à en tirer parti dans vos thèmes et plug-ins enfants et à rendre public votre code..

Mais avant de commencer, vous devez savoir comment fonctionnent les frameworks de thèmes et ce qui les rend différents sous forme de thème parent standard..

J'ai passé du temps à développer deux cadres de thèmes pour une utilisation sur deux catégories de sites clients, à développer et à les améliorer au fil du temps, et j'ai également travaillé avec certains cadres de thèmes tiers. D'après mon expérience, un cadre de thème présente quelques caractéristiques principales:

  • Il consiste en un thème parent conçu pour être utilisé avec des thèmes enfants. Dans certains cas, le thème parent peut également fonctionner en tant que thème autonome, mais dans d'autres, il ne fonctionne qu'avec des thèmes enfants. Le codex WordPress les définit respectivement comme "thèmes de base / de démarrage" et "bibliothèques de code"..
  • Il inclut des hooks et des fonctions qui peuvent être exploités par des thèmes et des plugins enfants. Votre framework de thème est la base de tout un écosystème avec lequel vous allez travailler, et cela inclut les plugins qui seront connectés à votre framework..
  • S'il est conçu pour être consulté par des utilisateurs non codants, il comprendra des pages d'options de thème permettant aux utilisateurs de personnaliser le thème en fonction de leurs besoins. Ceux-ci peuvent être volumineux, incorporant la conception, la mise en page, les fonctions, le contenu, etc. Dans certains cas, des fonctionnalités peuvent être fournies via le thème Customizer..
  • Il peut inclure plusieurs zones de widgets afin que les utilisateurs non techniques puissent ajouter du contenu ou du code via des widgets (y compris les widgets ajoutés par les plugins que vous écrivez spécifiquement pour le framework)..
  • Il peut également inclure des fonctionnalités de bibliothèque de scripts, telles qu'un curseur jQuery ou une lightbox. En fonction de vos besoins et de ceux de vos utilisateurs, vous pouvez les intégrer au framework ou fournir aux plugins le code qui s’accroche à votre framework..
  • Il est extensible, avec des hooks permettant d'étendre ses fonctionnalités via des thèmes enfants ou des plugins..

Les deux premiers points ci-dessus sont les plus fondamentaux - sans un thème parent, vous n'avez pas de cadre de thème. Et un thème parent sans ces crochets et fonctions est juste un thème parent de base, pas vraiment un framework..

C’est donc ce que sont les cadres thématiques, mais comment fonctionnent-ils? Jetons un coup d'œil aux éléments d'un framework de thème:

  • Le thème parent et les thèmes enfants facultatifs
  • Crochets d'action et de filtrage
  • Les fonctions
  • Options du thème
  • Widgets
  • Les scripts
  • Extensibilité

Les thèmes parent et enfant

Le composant principal d'un framework de thème est le thème parent. Cela peut être conçu de deux manières:

  • En tant que thème de démarrage, qui peut fonctionner seul, peut-être avec une personnalisation via un écran d'options de thème ou le personnalisateur de thème. Atahualpa et Thematic en sont des exemples. Les deux peuvent être utilisés comme thèmes autonomes sans l'utilisation de thèmes enfants.
  • En tant que fondation à ajouter à un thème enfant, sans lequel le thème ne propulsera pas efficacement un site. Les exemples incluent Hybrid Core et Genesis. Celles-ci incluront le code de base que vous trouverez normalement dans un thème, ainsi qu'une gamme de points d'ancrage et de fonctions pouvant être exploités par des thèmes enfants, ainsi que par des plugins. Tout cela comprend une API pour le framework.

Le principe DRY étant l’une des caractéristiques clés des frameworks de thème, votre thème parent utilisera probablement des parties de modèle et des fichiers à inclure autant que possible, ce qui signifie que vous pourrez accéder au même code à différents endroits de votre thème. Cela facilite également le remplacement du code dans vos thèmes enfants, car vous créez simplement un élément de modèle de remplacement ou un fichier d'inclusion..

Je ne vais pas expliquer le concept de thèmes parent / enfant tel qu'il est traité dans ce tutoriel sur les thèmes enfants. De nombreux cadres de thèmes viennent avec une gamme de thèmes enfants pour les soutenir, tandis que pour d'autres, vous devez développer votre propre. 

Si vous développez le vôtre, je vous recommanderais de créer au moins un thème enfant "de démarrage" afin d'éviter de répéter le travail de création d'un thème: vous pouvez décider de créer plusieurs thèmes enfants en tant que base pour différents types de projet. , par exemple des thèmes enfants pour des blogs et des sites autres que des blogs.

Crochets d'action et de filtrage

Un cadre de thème inclura une gamme de points d'accroche pour les thèmes enfants et les plug-ins à prendre en compte lors de l'ajout de code personnalisé ou du changement de comportement du thème:

  • Les crochets d'action apparaîtront à plusieurs endroits dans le code, ce qui vous permettra d'ajouter du code à vos fichiers de modèle via des fonctions codées dans la structure pouvant être remplacées par des thèmes enfants ou via des fonctions que vous ajouterez à vos thèmes ou plug-ins. Mon propre framework de thèmes utilise énormément les points d’action, en les intégrant dans tous les fichiers de modèles pour permettre aux utilisateurs de créer du contenu, tel que des zones de widgets, des coordonnées, des boutons d’appel à l’action et du code spécifique au site, le cas échéant..
  • Les points d'ancrage du filtre peuvent être utilisés pour modifier le comportement d'un site utilisant un thème enfant ou un plug-in, par exemple la personnalisation de boucles, la modification de contenu statique, etc. Tout texte statique (ou code appelé de l'extérieur de votre site) doit être placé dans un filtre, de sorte qu'il puisse être modifié par des thèmes enfants si nécessaire..

Prenez le temps de réfléchir aux crochets que vous souhaitez inclure à un stade précoce, afin de savoir quel contenu inclure via un crochet et ce qu'il faut coder dans vos fichiers de modèle directement. Vous allez regarder cela dans la prochaine partie de cette série.

Les fonctions

Votre cadre est également susceptible d'inclure une gamme de fonctions. Certains d'entre eux seront rattachés aux actions et aux filtres que vous avez déjà définis, tandis que d'autres sont des fonctions telles que les balises de modèles que les thèmes enfants peuvent utiliser.. 

Si vous utilisez des fonctions personnalisées sur plusieurs sites clients, il vaut la peine de les ajouter à votre infrastructure. Vous n'êtes pas obligé d'activer toutes vos fonctions: vous pouvez activer une fonction du thème parent à l'aide d'un add_action () fonctionner dans votre site enfant.

Options du thème

Les écrans d'options de thème sont un complément utile à tout thème complexe, mais le seront tout particulièrement pour les cadres de thème conçus pour des utilisateurs non techniques. Les principaux cadres de thème incluent tous plusieurs écrans d’options de thème dans leur propre section admin, avec des options comprenant l’activation et la désactivation de fonctionnalités, la modification de la présentation, l’ajout de contenu et la modification d’éléments de conception tels que les couleurs, les images de fond, les polices et les images d’en-tête..

Vous pouvez choisir d'utiliser le personnalisateur de thème pour plusieurs de vos options, ce qui présente l'avantage de permettre à vos utilisateurs de voir leurs modifications à mesure qu'ils les ont effectuées. J'ai choisi cette approche pour le cadre thématique Edupress, que j'ai développé pour les sites Web d'école avec Mark Wilkinson..

Zones de widget

Que vous choisissiez d'ajouter une gamme de zones de widgets dépendra de l'audience de votre infrastructure: si vous ou une petite équipe de développeurs travailliez avec le thème, vous pourriez ne pas ajouter de zones de widget au-delà de la barre latérale et du pied de page standard. des zones.

Mais si votre infrastructure doit être utilisée par des utilisateurs non techniques, vous pouvez leur donner beaucoup plus de flexibilité en enregistrant plusieurs zones de widgets à différents endroits de votre thème. En plus de la barre latérale et du pied de page normaux, vous pouvez également enregistrer des zones de widget dans l'en-tête, avant et / ou après le contenu et en dessous du pied de page..

Le cadre de thème que j'utilise pour mes sites clients comprend quatre zones de widget dans le pied de page: le thème vérifie celles qui sont renseignées et ajoute les classes CSS en conséquence, de sorte que les zones de widget occupées occupent chacune la largeur appropriée de la page..

Les zones de vos widgets peuvent être codées directement dans vos fichiers de modèle ou vous pouvez décider (comme je le fais) de les ajouter via des points d’accrochage aux endroits appropriés de votre site. Cela signifie qu'ils peuvent être remplacés dans les thèmes enfants, soit par d'autres zones de widgets, soit par un code personnalisé..

Les scripts

Si un script donné est susceptible d’être utilisé par un certain nombre de sites construits sur votre cadre, ou si vos utilisateurs ne sont pas techniques et que vous souhaitez fournir des options supplémentaires, vous pouvez décider d’inclure certains scripts dans votre cadre, tels que curseur ou script lightbox. Cela peut éviter aux utilisateurs d'avoir à installer des plug-ins supplémentaires, mais présente l'inconvénient de générer une surcharge de code si ces scripts ne sont pas nécessaires..

Encore une fois, cela dépendra de votre public et des besoins anticipés: si vous travaillez uniquement avec le framework, je vous conseillerais de développer (ou d’identifier) ​​des plugins avec ces scripts et de les utiliser lorsque vous en aurez besoin..

Si vous incluez des scripts, il vaut la peine d’inclure une option d’activation et de désactivation sur l’écran d’options de votre thème..

Extensibilité

Si votre infrastructure doit être utile pour une série de sites maintenant et dans le futur, vous voulez qu’elle soit extensible. Le thème parent qui constitue le cœur du cadre n'est que le cœur d'un écosystème dans lequel vous et les utilisateurs de votre thème allez puiser pour ajouter des options supplémentaires et du pouvoir à leurs sites. Cela comprendra:

  • Thèmes pour enfants ou thèmes de démarrage - la liste de ceux-ci risque de s'allonger avec le temps, surtout si vous publiez votre thème au public.
  • Plugins conçus pour fonctionner spécifiquement avec votre framework, souvent activés via des hooks spécifiques au framework.

Il peut également inclure de la documentation destinée aux autres développeurs souhaitant utiliser votre framework: la plupart des frameworks thématiques principaux sont accompagnés d’une documentation complète que les développeurs peuvent utiliser pour personnaliser leurs sites basés sur le framework ou pour créer des thèmes enfants ou des plugins pour d’autres utilisateurs du système. cadre d'accès.

Résumé

Les frameworks de thème sont un outil puissant dans l'arsenal du développeur WordPress. Comme nous l'avons vu, ils sont essentiels pour des milliers de propriétaires de sites non techniques qui les utilisent pour créer des sites WordPress personnalisés. Mais ils sont également un excellent outil pour tout développeur qui créera plusieurs sites, que ce soit pour son usage personnel ou pour ses clients.. 

Les frameworks de thèmes présentent un certain nombre de caractéristiques qui leur donnent ce pouvoir: ils sont extensibles et flexibles, et vous permettent, ainsi qu'à vos utilisateurs, de créer des sites personnalisés à l'aide de thèmes enfants et d'accéder aux fonctions et crochets fournis par votre framework.

Après avoir examiné le fonctionnement des cadres de thème, dans la prochaine partie de cette série, vous identifierez ce que votre cadre doit faire et pour qui il doit travailler, ce qui vous aidera à choisir l’approche de développement la plus appropriée..