La tua condizione dovrebbe essere scritta in questo modo:
if (is_page_template(‘path/file.php’)) {
// Fai qualcosa
}
Credo che la confusione sia dovuta a due cose:
I documenti fanno riferimento a “name” in modo ambiguo. Specificare “file name” renderebbe la documentazione molto più chiara.
Il codice dietro is_page_template() mostra la funzione get_page_template_slug() al suo interno. Questa funzione restituisce effettivamente un nome file, non lo slug del template. https://codex.wordpress.org/Function_Reference/get_page_template_slug
Quando si specifica un argomento per la funzione is_page_template() (come nell’esempio sopra), il percorso del file è relativo alla radice del tema.
Questa funzione non funzionerà all’interno del ciclo.
MODIFICA: un problema importante da notare anche qui. La funzione is_page_template() restituirà empty/false se la pagina utilizza il template predefinito dalla gerarchia. Se non viene assegnato un modello personalizzato, devi usare un altro metodo, come basename(get_page_template()). Guarda la risposta di Jacob qui per maggiori dettagli:
MODIFICA 2: Questa nota “modello predefinito” include modelli che usano lo slug di pagina o altre convenzioni di denominazione (ad esempio page-mypage-slug.php) dalla mia esperienza personale.