Spéléologie dans la hiérarchie des modèles

La hiérarchie des modèles est une de mes fonctionnalités préférées dans WordPress. Non seulement il rend les sous thèmes possibles, mais il améliore également lrsquoensemble de lrsquoécosystème parce que pouvez écrire plus de code à stocker dans des blocs de plus en plus petits. Crsquoest génial. Fait intéressant, il est implémenté par des blocs de code relativement petits. Mais les réparer commence à nous mettre en contact avec certaines des Parties les plus intéressantes de WordPress. Cet article suppose que avez une certaine connaissance de PHP, donc si ne lrsquoavez jamais fait, pourriez être un peu ivre. Mais ce nrsquoest pas trop compliqué ou enivrant, donc même les débutants qui sont avec nous doivent apprendre une ou deux choses.
Résumé rapide de la hiérarchie des modèles cet article ne contiendra pas de résumé complet de la hiérarchie des modèles. Mais un peu de compréhension est utile. La hiérarchie des modèles fait deux choses principales dans WordPress: permettre à un thème d’inclure facilement de nombreux fichiers différents pour différentes situations courantes dans WordPress: archivage de catégories, pages de messages uniques, etc. Chacun peut exister indépendamment. La hiérarchie des modèles est une façon pour WordPress de se choisir les uns les autres, ce qui facilite le travail des auteurs de thèmes. Permet aux sous thèmes drsquoentrer dans la même procédure que le thème principal et de passer outre les options de modèle individuelles avec leurs propres options de modèle. Crsquoest pourquoi les thèmes pour enfants sont si puissants: ils peuvent changer rapidement de petites Parties drsquoun thème sans rien faire. Ça ressemble un peu à ça:
C’est ce que je dis toujours, mais ce que j’aime le plus, c’est la hiérarchie des modèles WordPress. Format générique de nom de domaine. La fonction principale du sous thème: locate _ Template, donc la hiérarchie du modèle nécessite deux choses de base: examiner les fichiers du sous thème avant le thème principal, et la hiérarchie complète comme elle est affichée à lrsquoauteur du thème. La plupart
La deuxième logique drsquoimplémentation est le chargeur in WP include template. Php. On en reparlera plus tard. La plupart des logiques qui implémentent la compatibilité des sous thèmes sont dans la fonction locate _ Template dans WP includes template. Php. Cette fonctionnalité est similaire à ceci:
Fonctions locate _ Template ($$Template names, $$Load = False, $$require once = True) {$located =
Crsquoest ce qursquoil faut vraiment faire. Boucle tous les fichiers drsquoun tableau donné et renvoie la valeur $localisée pour le réglage initial drsquoune chaîne vide si aucun fichier correspondant nrsquoest trouvé. une correspondance est trouvée lors de lrsquoexécution de la liste dans le Sous thème ou (par conséquent) dans le thème principal, elle renvoie la chaîne de chemin complète du fichier. De plus, selon la façon dont il est appelé, il charge le fichier pour enregistrer les étapes supplémentaires de la fonction Load _ Template elle même à lrsquoappelant. Crsquoest une fonction très simple, locate _ Template, et il nrsquoy a pas beaucoup de v
Plan ()): ElseIf (IS _ post type Archive ()): ElseIf (IS post type Archive ()): ElseIf (IS Tax ())): ElseIf (IS Tax ()): ElseIf (IS Tax ()): ElseIf (IS taxtax ()): ElseIf (IS attachment ())::: ElseIf (IS attachment ())::: ElseIf (IS attachment ()):::: ElseIf (IS attachment ()))::: ElseIf (IS attachment () amp amp amp amp $$temptemplate = get post type type Archiv Template ()): ElseIf (IS Tax ()): is Tax u Template (): remove _ filter (lsquothe contentrsquo, lsquoprepend attachmentrsquo) ElseIf (IS _ ngle () amp amp amp amp $Template = get ngle Template (): ElseIf (IS page () amp amp $Template = get page Template ()): ElseIf (IS page ()): ElseIf (IS Category () amp amp amp amp $$Template = get Category Template ())): ElseIf (IS page ()): ElseIf (IS page () amp amp $Template = get Template (): ElseIf (IS page ()): ElseIf (IS Tag ()): ElseIf (IS Tag () amp amp amp amp $$Template = get Template ()): ElseIf (IS page (TAG _ Template (): ElseIf (IS author () amp $= get author Template (): ElseIf (IS date () amp amp nbsp $$Template = get _ date Template ()): ElseIf (IS Archive ()): ElseIf (IS Archive () amp amp amp amp amp $$Template = get Archiv temptemplate ()): ElseIf (IS comments popup () amp amp amp $$Template = get comments popup temptemplate ()): ElseIf (IS page ())): ElseIf (IS page (): ElseIf (IS page ()): ElseIf (IS page () amp amp amp amp amp amp $$Template = ElseIf (IS comments popup () amp amp $$Template ()): ElseIf (IS comments popup ()) amp amp $Template u page d _ Template (): else: $= get index Template () EndIf * * Filtrez le chemin du modèle actuel avant de lrsquoinclure. Chemin vers le modèle à inclure par * * @ Param string $Template depuis 3.0.0 ($Template = apply _ filters (lsquoTemplate includersquo, $template)), inclure ($template) Reviens! EndIf Un grand bloc if suivi drsquoun simple appel, y compris PHP. Crsquoest la hiérarchie du modèle, et tout est simple! Crsquoest quoi tout ça?
La plupart des développeurs WordPress auront une certaine expérience avec des fonctions telles que is u 404 (). la page courante que consultez appartient à ce type, elle répond. Tout est prêt ici, donc on peut lrsquoutiliser comme une boîte noire magique. Ces balises sont ensuite utilisées avec lrsquoappel Template = get _ 404 Template (). Et ceux là, dans les coulisses, presque tout le monde appelle le modèle locate _ template. Pour 404, la fonction est similaire à la fonction get _ 404 Template (lsquoreturn get Query Template (lsquo 404 lsquo) En soi, le modèle get _ Query nrsquoest qursquoun wrapper pour
Appelez 404 et changez le en 404. Php, puis appelez locate _ Template comme un tableau. (le modèle get _ Query effectue également quelques opérations de nettoyage de base et contient un appel aux filtres apply FILTERS, exactement.
Comment gérer la hiérarchie des modèles? Drsquoun gros bloc si. Srsquoil nrsquoy a pas de fichier modèle 404, il passe aux conditions de la branche suivante, et ainsi de suite. Rien de trop compliqué. aucun nrsquoest trouvé, renvoie le résultat de get _ index Template () qui obtient lrsquoindex. Php est la dernière ressource, comme nous le savons à partir de la hiérarchie des modèles. Crsquoest propre, non? Notre connaissance de la hiérarchie des modèles espérons que nous avons montré quelques caractéristiques de programmation simples: un grand arbre if ElseIf else et une boucle avec quelques conditions de base de fichier _ exists sont suffisantes pour exécuter toute la hiérarchie des modèles.
J’espère que cette connaissance permettra de immerger plus facilement dans WordPress et certaines de ses technologies de base. La hiérarchie des modèles nrsquoest pas trop ésotérique pour la plupart des développeurs, bien qursquoils puissent le penser au départ. La plupart de la programmation nrsquoest pas compliquée par la profondeur, mais simplement parce que ne connaissez pas lemplacement et la façon dont la logique est organisée. Lorsque ces connaissances deviennent la confiance dans la vie, de nouveaux niveaux de compréhension srsquoouvrent à . Bon hacker! Source: Evan Kirby via unsplash

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

ContactPress Supported By WordPress Plugins