Come creare un template di pagina per visualizzare un custom post type?
Vorrei creare un file template di pagina per visualizzare i post di un tipo di contenuto personalizzato. Stavo lavorando con questo codice trovato su questo sito, ma non visualizza nulla. Qualcuno sa qual è il problema?
<?php /* Template Name: Archivio Custom Post Type */
get_header(); ?>
<?php
global $query_string;
query_posts($query_string . "post_type=TUO-CUSTOM-POST-TYPE&post_status=publish&posts_per_page=10");
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
<?php endwhile;
endif; ?>
<div class="navigation">
<div class="alignleft"><?php next_posts_link('Post precedenti') ?></div>
<div class="alignright"><?php previous_posts_link('Post successivi') ?></div>
</div>
<?php wp_reset_query(); ?>
<?php get_sidebar(); ?>
<?php get_footer();?>

Non è necessario utilizzare una query, basta creare il tuo template e nominarlo single-NOME_TUO_POST_PERSONALIZZATO.php, per maggiori riferimenti dai un'occhiata a:

Non sono sicuro di aver capito. Potresti spiegare un po' meglio la tua risposta?

il template di pagina predefinito per un custom post type è single-NOME.php, quindi se il tuo custom post type si chiama "Sports", devi creare quel tema e salvarlo come single-sports.php, hai già il tuo tema creato, devi solo eliminare quella query alla riga 5 e lasciare il loop così com'è. Inoltre nota che i link next e prev non funzioneranno poiché quelle funzioni non lavorano con i CPT, però ci sono alcuni plugin in giro per quello, google è tuo amico.

Se hai creato un nuovo Custom Post Type, per visualizzarlo sul sito devi utilizzare i seguenti file nella cartella del tuo tema:
- archive-{CPT}.php
- single-{CPT}.php (Opzionale se vuoi visualizzare un singolo post in modo diverso)
Sostituisci {CPT} con il nome del Custom Post Type che hai configurato. Poi in questi file puoi semplicemente usare un normale loop come nel tuo file index.php.
ESEMPIO:
<?php get_header(); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php /* Il contenuto dei tuoi Post */ ?>
<?php endwhile; else: ?>
<div class="post">
<p><?php _e('Spiacenti, nessun post corrisponde ai criteri richiesti.', "hi-rezz"); ?></p>
</div>
<?php endif; ?>
<?php get_footer(); ?>

Grazie per la spiegazione dettagliata. Per favore abbi pazienza con me, sono relativamente nuovo a questo tipo di modifiche in WordPress. Il mio CPT è "New Movies". Lo slug per questo è "new_movies". Il file dell'archivio è "archive-new_movies.php". Quindi devo inserire il codice del loop nel file dell'archivio?

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php /* Contenuto dei tuoi articoli */ ?>
<?php endwhile; else: ?>
<div class="post">
<p><?php _e('Spiacenti, nessun articolo corrisponde ai criteri selezionati.', "hi-rezz"); ?></p>
</div>
<?php endif; ?>
