web-dev-qa-db-fra.com

Quelle est la meilleure façon d'organiser les parties de gabarit?

J'essaie de mettre de l'ordre dans les fichiers de thème et j'aimerais séparer les parties des modèles. Je vois que le trait de soulignement (_s) a fait quelque chose de similaire enter image description here

mais ils ont déplacé seulement les modèles de contenu à l'intérieur,

J'ai plusieurs modèles d'en-tête, de pied de page, de contenu, de portfolio,

pensez-vous que cet ordre serait ok

theme_name/
-theme-templates/
    --headers/
    --- header-centered.php
    --- header-left.php
    --- header-right.php
    --- header-menubottom.php
    --footers/
    --- footer-grid.php
    --- footer-blank.php
    --content/
    --- content-single.php
    --- content-page.php
    --- content-none.php
    --- content-search.php
    --portfolio/
    --- portfolio-full.php
    --- portfolio-split.php

ou aurais-je des ennuis?

Toute aide est appréciée.

1
Benn

En regardant les codes sources suivants

vous allez avoir des problèmes, plus avec vos en-têtes et pieds de page personnalisés. Je ne sais pas ce qu'est portfolio et comment il sera utilisé. Je ne peux donc pas répondre à cette question.

get_footer() et get_header() n'autorisent pas le chargement d'en-têtes et de pieds de page personnalisés à partir d'un sous-dossier. En regardant les codes sources, les seuls noms de fichiers valides sont les suivants

  • Pour les en-têtes, il s'agira de header-{$name}.php et header.php

  • Pour les pieds de page, il s'agira de footer-{$name}.php et footer.php

Il n'y a pas de filtres pour ajuster ce comportement dans get_footer() et get_header(). Il existe cependant une méthode bidon que vous pouvez utiliser ici. Pour que cela fonctionne, vous devrez nommer vos dossiers comme suit:

  • Pour les en-têtes, vous devrez nommer votre dossier header-{whatever}, où {whatever} peut être ce que vous voulez.

  • Pour les pieds de page, vous devrez nommer votre dossier footer-{whatever}, où {whatever} peut être ce que vous voulez.

( Remarque: Utiliser autre chose que header et footer comme préfixe dans le nom du dossier ne fonctionnera pas ). Vous pouvez ensuite appeler vos pieds et en-têtes personnalisés de la manière suivante:

get_header( 'whatever/header-centered' );

qui créent un nom de fichier comme header-whatever/header-centered.php

En ce qui concerne les parties de gabarit, je ne vois aucun problème directement au dos. Tout ce que vous devez vous rappeler est d’ajouter le nom du sous-dossier dans $slug

Au lieu de

get_template_part( 'content', 'single' );

vous devrez procéder comme suit si votre sous-dossier s'appelle content

get_template_part( 'content/content', 'single' );
1
Pieter Goosen