Création de thèmes pour enfants pour votre cadre de thème WordPress

Le cadre de thème que vous avez créé sera utilisé comme thème parent dans les sites que vous développez. Cela signifie que dans chaque cas, vous devrez créer un thème enfant pour créer un site unique avec son propre design et des fonctions supplémentaires ou différentes par rapport au cadre..

La façon la plus simple d’y parvenir est de plonger et de commencer à créer des fichiers de modèle dans votre thème enfant pour remplacer ceux du cadre, mais grâce aux crochets d’action et de filtre que vous avez ajoutés à votre cadre, il se peut que ce ne soit pas toujours le meilleur choix. approche.

Dans cet article, je vais décrire certaines des techniques que vous pouvez utiliser dans vos thèmes enfants pour optimiser l'utilisation de votre cadre et améliorer votre flux de travail..

Les sujets que je couvrirai sont les suivants:

  • Création de thèmes enfants de démarrage
  • Modification du code via les crochets de filtre du framework
  • Ajout de code via les hooks d'action du framework
  • Création de fichiers de modèles dans votre thème enfant
  • Quand utiliser un plugin à la place

Création de thèmes pour enfants débutants

Le principal objectif de l’élaboration de votre cadre thématique est d’adopter le principe DRY (ne vous répétez pas), et cela vaut également pour les thèmes de votre enfant..

Cela peut vous rendre plus efficace si vous créez un ou plusieurs thèmes enfants "de démarrage" à utiliser avec votre infrastructure, qui contiennent le code principal dont vous avez besoin pour démarrer sur de nouveaux projets..

Lorsque vous décidez comment procéder, tenez compte de votre façon de travailler et des sites que vous créez:

  • Créez-vous beaucoup de sites pour des clients du même secteur ayant des besoins similaires?
  • Souhaitez-vous offrir des sites basés sur des modèles à faible coût aux plus petits clients??
  • Existe-t-il des fichiers modèles spécifiques que vous avez tendance à créer pour la plupart de vos nouveaux projets??
  • Y a-t-il des fonctionnalités que vous devez inclure sur certains sites mais pas sur d'autres? (Par exemple, j'utilise deux thèmes enfants de base, l'un avec une fonctionnalité de commentaire et l'autre sans.)
  • Y a-t-il un style que vous avez tendance à utiliser pour la plupart des projets ou pouvez-vous utiliser un style orienté objet ou un préprocesseur CSS pour la plupart des projets??
  • Existe-t-il des bibliothèques ou des ressources que vous utilisez pour la plupart des nouveaux projets ou pour une proportion significative d'entre eux??
  • Avez-vous deux ou trois catégories principales dans lesquelles vous pouvez placer des projets, chaque catégorie impliquant un travail de développement similaire?

Si vous avez répondu oui à l'une de ces questions, le développement d'un ou de plusieurs thèmes pour enfants débutants peut vous faire gagner du temps. Vous pouvez créer un ensemble de thèmes enfants avec le code de base que vous répétez dans tous les projets les utilisant, sans avoir à réécrire ce code (ni à créer ces fichiers) pour chaque nouveau projet..

Remarque sur les réserves: si vous ajoutez du code à chaque nouveau projet, vous pouvez l'ajouter à votre framework plutôt qu'à des thèmes enfants, peut-être en utilisant un crochet pour pouvoir le remplacer si un besoin différent se présentait à l'avenir..

Même si vous avez répondu non aux questions ci-dessus, cela vaut la peine de créer un thème de base très bas avec une feuille de style et un fichier de fonctions vides, et d'ajouter les instructions nécessaires à WordPress pour accéder au thème parent de votre framework dans la feuille de style:

/ * Nom du thème: Mon thème URI du thème enfant du thème: Description: Thème enfant du débutant Auteur: Rachel McCollin URI de l'auteur: http://rachelmccollin.co.uk Modèle: wptutsplus-theme-framework-part6 Version: 1.0.0 Tags: Texte Domaine: tutsplus * / @import url ("… /wptutsplus-theme-framework-part6/style.css");

Les champs obligatoires ci-dessus sont Nom du thème et Modèle, le reste est optionnel. Assurez-vous que pour le Modèle, vous utilisez le répertoire du thème du framework, pas son nom. Il est utile de compléter également les autres champs pertinents pour votre thème..

le @importation La déclaration est également importante si vous souhaitez charger la feuille de style du framework. Tant que vous le placez au-dessus de tout autre CSS, cela chargera la feuille de style du thème parent avant tous les styles de la feuille de style du thème enfant, ce qui signifie que vous pourrez ajouter et remplacer le style de votre framework dans le thème enfant si nécessaire..

Vous voudrez peut-être aussi créer un démarreur functions.php fichier avec les fonctions que vous utilisez le plus souvent dans vos thèmes enfants. Vous pouvez ensuite choisir de supprimer ces éléments et / ou d’y ajouter des éléments pour des projets spécifiques..

Modification du code via des crochets de filtre

En plus d'ajouter un style à votre thème enfant, vous voudrez probablement apporter des modifications au code généré par le framework. Le moyen le plus simple de le faire est d'utiliser des crochets de filtre. Il est donc intéressant d'explorer d'abord ces derniers pour savoir si vous pouvez en utiliser un..

La création d'une fonction que vous attachez ensuite à un crochet de filtre est beaucoup plus efficace que la création d'un tout nouveau fichier de modèle pour le nouveau code; toutefois, si vous vous retrouvez souvent confronté à cette opération avec le même crochet de filtre, vous pouvez envisager de le remplacer par un crochet d'action et d'écrire une nouvelle fonction pour chaque projet que vous activez via ce crochet d'action.. 

Pour plus d'efficacité, vous pouvez créer un ensemble de fonctions pertinentes que vous placez dans le fichier de fonctions de différents thèmes de démarrage ou même créer un plug-in avec votre fonction que vous activez si nécessaire. Je couvrirai les plugins plus en détail plus tard dans cette série.

J'ai abordé le processus de création de crochets de filtre dans une partie antérieure de cette série, mais pour récapituler, vous associez une fonction à un filtre à l'aide de la commande add_filter () une fonction. Ainsi, par exemple, pour modifier le lien et le nom utilisés dans le colophon de mon site, je crée deux fonctions comme suit:

function wptp_amend_colophon_name () $ name = 'Rachel McCollin'; return $ name;  add_filter ('wptp_colophon_name', 'wptp_amend_colophon_name'); function wptp_amend_colophon_link () $ link = 'http://rachelmccollin.co.uk'; return $ link;  add_filter ('wptp_colophon_link', 'wptp_amend_colophon_link');

Ceux-ci s'accroche en deux filtres dans mon cadre de thème: wptp_colophon_name et wptp_colophon_link, et changer ce qui est produit par chacun d'eux.

Ajout de code via des crochets d'action

Votre framework de thème disposera également de points d’accès que vous pourrez utiliser pour insérer du contenu à différents endroits de vos sites..

Si vous avez travaillé sur les fichiers de code pour la structure fournie avec cette série de tutoriels, vous aurez sept points d’accès à utiliser:

  • avant l'en-tête
  • à l'intérieur de l'en-tête
  • avant le contenu
  • après le contenu
  • dans la barre latérale
  • dans le pied de page
  • après le pied de page.

Ainsi, par exemple, supposons que vous vouliez ajouter un bouton d’appel au bouton d’action dans la barre latérale. Vous pouvez créer un nouveau sidebar.php fichier, mais il serait plus efficace de simplement utiliser le wptp_sidebar crochet à la place.

Pour ce faire, créez un functions.php fichier dans votre thème enfant et ajoutez-y les éléments suivants:

fonction wptp_cta () ?> 

Envoyez-nous un mail à [email protected]

le wptp_cta () fonction crée le balisage pour l'appel à l'action et la add_action () la fonction le déclenche via le wptp_sidebar crochet avec une priorité de 1 de sorte qu'il apparaisse avant tout autre contenu activé via ce hook.

Vous pouvez ajouter de nombreux autres contenus à l'aide de vos crochets d'action, tels que des boutons de partage situés au-dessus ou au-dessous du contenu, du contenu supplémentaire dans le pied de page, un champ de recherche dans l'en-tête, etc..

Vous voudrez peut-être simplement ajouter du contenu sur des types de page spécifiques, tels que des articles sur un seul blog. Dans ce cas, le plus évident est de commencer par créer un nouveau single.php modèle. Mais vous pouvez toujours utiliser vos crochets d'action avec l'ajout d'une balise conditionnelle:

fonction wptp_after_single_posts () if (is_singular ('post')) ?> 

Apprécié cela? Essayez de lire plus!

Cela créerait une nouvelle requête (en utilisant WP_Query) qui produit une liste des articles les plus récents sur le blog, pour encourager les visiteurs à lire autre chose une fois l’article terminé. le is_singular ('post') La balise conditionnelle garantit qu’elle n’est sortie que pour les publications uniques, et en la reliant à la wptp_after_content accrocher vous l'affichera après le contenu principal de la publication.

Création de nouveaux fichiers de modèles

Parfois, vous ne pourrez pas faire ce que vous voulez en utilisant les crochets de filtre ou d'action de votre framework, auquel cas vous devrez créer de nouveaux fichiers de modèles dans vos thèmes enfants..

Il peut s’agir des mêmes fichiers modèles que ceux stockés dans votre infrastructure, auquel cas les fichiers du thème enfant les remplaceront. Il peut également s'agir de nouveaux fichiers de modèle, par exemple pour une nouvelle catégorie, une taxonomie ou un type de publication..

Si vous créez des fichiers de modèle dans vos thèmes enfants, cela vous simplifie la tâche si vous utilisez les fichiers de modèle de votre infrastructure comme point de départ. Les étapes que je suis sont les suivantes:

  1. Identifiez le fichier modèle que vous devez créer en vous référant à la hiérarchie des modèles WordPress.
  2. Créez un fichier vide avec le nom approprié dans votre thème enfant
  3. Identifiez dans votre framework le fichier le plus proche du nouveau fichier (toujours en référence à la hiérarchie des modèles)
  4. Copiez le contenu de cela dans votre nouveau fichier
  5. Apportez les modifications nécessaires au nouveau fichier..

Cela vous évite de dupliquer tout code commun entre votre nouveau fichier et les fichiers existants dans votre infrastructure, tels que les appels à inclure des fichiers..

Quand utiliser un plugin à la place

Une autre option que vous avez lors de la création de sites basés sur votre infrastructure consiste à utiliser des plugins en conjonction avec vos thèmes enfants. Un plugin ne remplacera pas complètement un thème enfant, mais il peut être utile dans les cas suivants:

  • La fonctionnalité que vous souhaitez ajouter ne dépend pas du thème (c'est-à-dire que vous souhaitez la conserver si le site change de thème à l'avenir). Cela peut inclure l’enregistrement de types de publication personnalisés ou de taxonomies, par exemple.
  • Vous souhaitez utiliser cette fonctionnalité sur un certain nombre de sites que vous créez, mais pas suffisamment pour qu'elle soit intégrée à un thème enfant de démarrage ou au cadre lui-même..

Je couvrirai le développement de plugins pour votre framework dans la prochaine partie de cette série.

Résumé

Votre framework de thèmes n'est que le point de départ d'une bibliothèque de codes et de fichiers que vous créerez pour prendre en charge les sites que vous développez. Chaque site que vous créez devra être exécuté sur un thème enfant, qui aura votre thème de structure comme parent..

Comme nous l'avons vu, vos thèmes enfants ajouteront leur propre style et leurs propres fonctionnalités. Ils peuvent le faire en s’accrochant aux crochets d’action et de filtre de votre infrastructure ou en créant de nouveaux fichiers de modèle. C'est toujours une bonne idée d'adopter la solution qui nécessite le moins de code, car cela rend votre site plus rapide et vous simplifie la vie.!