get_template_part() non funziona se lo chiami da una sottocartella

28 set 2015, 10:50:10
Visualizzazioni: 26.7K
Voti: 4

Supponiamo di avere una struttura di directory come questa:

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

Se provo a chiamare get_template_part in questo modo get_template_part('content', 'job-listing') dal file template.php (nota che questo è solo un nome generico non il nome effettivo che sto usando) restituisce NULL.

Allo stesso modo, se uso get_template_part('../content', 'job-listing') anche questo non riesce a recuperare il template. Tuttavia, il primo metodo funziona correttamente se entrambi i file si trovano nella stessa directory.

get_template_part() non funziona se lo chiami quando ti trovi in una sottocartella di un tema

1
Commenti

possibile duplicato di Esiste un modo per utilizzare get_template_part() con le cartelle?

Pieter Goosen Pieter Goosen
28 set 2015 11:27:21
Tutte le risposte alla domanda 1
1
11

get_template_part() funzionerà allo stesso modo indipendentemente da dove o quanto in profondità ti trovi all'interno del tuo tema. Include sempre relativamente alla radice del tema (o del tema child).

Quindi se chiami quanto segue da qualsiasi punto:

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

... cercherà di caricare (in ordine):

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

Per caricare parti che si trovano in una sottocartella del tuo tema, basta usare il percorso nel primo argomento:

get_template_part( 'path/to/file', 'optional-slug' );
28 set 2015 12:15:10
Commenti

Giusto. È fantastico, il problema principale è capire quale di quei file verrà utilizzato in un determinato caso. Ad esempio, l'indice caricherà il content.php anche se penseresti che dovrebbe essere la versione excerpt... Quindi in alcune situazioni può creare confusione.

Alexis Wilke Alexis Wilke
12 ott 2018 07:43:21