web-dev-qa-db-fra.com

get_template_part () ne fonctionne pas si vous l'appelez quand vous êtes dans un sous-dossier

Disons par exemple que vous avez un répertoire comme celui-ci:

theme
  - subfolder
    - template.php
content-job-listing.php

Si j'essaie d'appeler get_template_part comme suit, ainsi get_template_part('content', 'job-listing') à partir du fichier template.php (notez qu'il s'agit simplement d'un nom générique et non du nom que j'utilise actuellement), il renvoie NULL.

De même, si j'utilise get_template_part('../content', 'job-listing'), le modèle ne sera pas renvoyé. Cependant, le premier fonctionne correctement si les deux sont dans le même répertoire.

get_template_part () ne fonctionne pas si vous l'appelez lorsque vous êtes dans un sous-dossier d'un t

3
chap

get_template_part() fonctionnera de la même manière, peu importe où et à quelle profondeur vous êtes dans votre thème. Il comprend toujours la racine relative au thème (ou thème enfant).

Donc, si vous appelez le suivant de n'importe où:

get_template_part( 'content', 'job-listing' );

... il va essayer de charger (dans l'ordre):

  1. child-theme/content-job-listing.php
  2. parent-theme/content-job-listing.php
  3. child-theme/content.php
  4. parent-theme/content.php

Pour charger des pièces qui se trouvent dans un sous-répertoire de votre thème, utilisez simplement le chemin dans le premier argument:

get_template_part( 'path/to/file', 'optional-slug' );
5
TheDeadMedic