Query del template di pagina con WP_Query
AGGIORNAMENTO: Questa è una risposta di dieci anni fa, pensata per una versione molto vecchia di WordPress. Vedo dai commenti che alcuni mi informano che potrebbe non funzionare per le versioni più recenti di WP, vi invito a consultare le altre risposte qui sotto se la mia non funziona per la vostra versione di WP. Per WP 2.*, questa soluzione funzionerà.
Prova questo... Assumendo che il nome del template sia 'my_template.php',
$query = new WP_Query(
array(
'post_type' => 'page',
'meta_key' => '_wp_page_template',
'meta_value' => 'my_template.php'
)
);
//Qui sotto va il loop...
Puoi anche usare get_posts, o modificare query posts per ottenere lo stesso risultato. Entrambe queste funzioni utilizzano gli stessi parametri di WP_Query.

Questo non è aggiornato. Vedi la risposta di Guille Holmann / BenJam più sotto.

Errato: a partire da WordPress 3 è necessario qualcosa di simile a:
$args = array(
'post_type' => 'page', // Tipo di post (pagina)
'meta_query' => array( // Query sui metadati
array(
'key' => '_wp_page_template', // Chiave del meta (template pagina)
'value' => 'my_template.php' // Valore da cercare (nome template)
)
)
);

GRAZIE!! Ho letto questa pagina troppo velocemente, ho usato la risposta accettata. Questa funziona. Per chiunque altro, nota l'array dentro l'array dentro l'array...

L'unica differenza qui è il post_type
. Altrimenti non ti serve l'array meta_query
per una singola coppia chiave/valore personalizzata.

Ovviamente la meta query è necessaria. Solo che potrebbe essere "in linea" con meta_key
e meta_value
oppure con un semplice array, che potrebbe includere più condizioni.

Se hai il template all'interno di un'altra cartella:
$args = array(
'post_type' => 'page', // è una Pagina, giusto?
'post_status' => 'publish',
'meta_query' => array(
array(
'key' => '_wp_page_template',
'value' => 'page-templates/template-name.php', // cartella + nome template così come salvato nel database
)
)
);

Il template della pagina è memorizzato come un valore meta con la chiave "_wp_page_template".
Quindi tutto ciò che serve è utilizzare quella chiave in un parametro di query meta. Per esempi
e http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters

Se il tentativo di qualcuno restituisce erroneamente zero post, probabilmente il nome del template è sbagliato. Ho provato il nome del file php e il nome del mio template ma non hanno funzionato. Poi ho deciso di ispezionare il menu a tendina dei template dove si seleziona il template nell'editor della pagina. Ho trovato questo:
<option value="templates-map/component-tutorial-1.php"
selected="selected">Tutorial -1</option>
Ho usato templates-map/component-tutorial-1.php
e ha funzionato.
