web-dev-qa-db-fra.com

Exemple d'organisation par thème sans tous les fichiers wp par défaut dans la racine

Je sais que je peux me débarrasser de certains des fichiers de thème par défaut WP requis à l'aide de get_template_part() par exemple. Mais certains fichiers doivent encore être présents - par exemple, comment déplacer page.php dans un sous-dossier pour qu'il fonctionne toujours? Je suis également conscient que vous pouvez placer vos propres modèles de page dans un dossier personnalisé et qu’ils sont reconnus normalement.

Je suis conscient du fait que changer la structure de la hiérarchie fondamentale WP n'est probablement pas la meilleure idée, mais cela pourrait bien être le cas pour développer des pages spécifiques (non orientées blog). Je ne vois pas en quoi le fait d'avoir plusieurs fichiers dans la racine du thème est une bonne chose lorsque vous essayez d'ajouter facilement une fonctionnalité.

Je sais que des questions similaires se posent ici, mais aucune n’a donné lieu à des exemples concrets. Voilà quelque:

Mais quelqu’un peut-il montrer un exemple d’organisation du dossier de thèmes de manière à ne me retrouver qu'avec (à peu près)

- mytheme
  -- functions
  -- img
  -- js
  -- styles
  -- languages
  -- custom-templates
     --- template-demo.php
     --- ...
  -- wp_template_parts 
     --- loop.php
     --- pagination.php
     --- comments.php
     --- header.php
     --- footer.php
     --- sidebar.php
     --- ...
  -- wp_default_view_templates 
     --- page.php
     --- single.php
     --- 404.php
     --- search.php
     --- archive.php
     --- ...
  -- index.php
  -- functions.php 
  -- style.css

où (par exemple) le dossier wp_default_view_templates se compose de WP modèles de hiérarchie par défaut.

Le dossier wp_template_parts inclut les partiels WP par défaut utilisés plusieurs fois. (cela fonctionne déjà via get_template_part ())

Le dossier views inclurait mes modèles de page personnalisés tels que template-customstuff.php, etc.

J'ai des fonctions et des actifs tels que css/js gérés tout de suite. La seule chose qui me dérange encore, ce sont tous les fichiers WP à la racine du thème.

Cette réorganisation est-elle vraiment une si mauvaise idée?

2
trainoasis

Je suis d'accord avec Mark que ce n'est pas la meilleure idée que j'ai jamais entendu parler, mais c'est facile à faire, en reportant tout à index.php. Démarrez ce fichier comme suit:

if (is_404() and file_exists (get_template_directory() . '/wp_template_parts/404.php')
    {get_template_part (get_template_directory() . '/wp_template_parts/404.php');}
elseif (is_page() ... and so on
...
else { normal index.php loop; }

Assurez-vous de prendre en compte la hiérarchie Wordpress lors de la mise en ordre de vos if-elses. Si vous voulez différents modèles de page (comme page-singlecolumn.php), il existe un autre problème: WP ne les trouvera pas automatiquement car il les recherche dans la racine. Vous devrez écrire dans la base de données pour rendre différents modèles disponibles lors de l'édition de pages.

En gros, cela signifie que vous devez vous occuper de tout ce que WP ferait pour vous si vous le faisiez à sa manière.

1
cjbj

Oui c'est une mauvaise idée. Il existe de facto des normes sur l'organisation du code dans les thèmes, et personne n'aime trouver le code de quelqu'un d'autre qui se croyait plus intelligent que tous les développeursWP qui le précédaient, même s'il est possible d'utiliser du code faites-le différemment.

Donc, à moins que vous ne soyez le seul à travailler sur ce thème, suivez les conventions et évitez d’en inventer de nouvelles.

1
Mark Kaplun