Come mostrare post completi invece di estratti nella vista categoria di WordPress
Sto utilizzando WordPress 3.0.1 con il tema Twenty Ten. Sto cercando di modificare il modo in cui i post vengono visualizzati nella vista Categoria (ad esempio accedendo a un URL come mio-sito.com/category/miacategoria). Attualmente i post nella vista Categoria mostrano solo una parte iniziale del post, ma vorrei modificare questo comportamento per visualizzare l'intero contenuto.
Nel file del Template di Categoria (category.php), ci sono alcune righe di codice che sembrano essere responsabili della generazione dei dati della categoria:
/* Esegue il loop per la pagina di categoria per visualizzare i post.
* Se vuoi sovrascrivere questo in un child theme, includi un file
* chiamato loop-category.php e quello verrà utilizzato al posto di questo.
*/
get_template_part( 'loop', 'category' );
?>
Poiché i commenti menzionano la configurazione di un child theme, ho seguito queste istruzioni (tramite questa risposta) per configurare un child theme e aggiungere la mia funzionalità personalizzata.
Dai commenti capisco che devo creare un file chiamato loop-category.php con la mia implementazione personalizzata, ma non so quale codice devo inserire in quel file. Cosa devo aggiungere a loop-category.php per far sì che le viste Categoria mostrino i post del blog completi?
NOTA: Anche se uso WordPress da tempo, questa è la mia prima incursione nella personalizzazione dei temi. Ogni aiuto sarebbe molto apprezzato.

@Ben,
Se guardi alla riga 132 di loop.php in Twentyten troverai l'istruzione condizionale che dice a WordPress di mostrare solo the_excerpt negli archivi delle categorie. Proprio sotto, dopo <?php else : ?>
, c'è il codice che mostra tutti i post che non sono in una pagina di archivio, nella categoria asides o nella categoria gallery. (Le categorie asides e gallery sono specificate all'inizio di loop.php)
<?php if ( is_archive() || is_search() ) : // Mostra solo estratti per archivi e ricerca. ?>
<div class="entry-summary">
<?php the_excerpt(); ?>
</div><!-- .entry-summary -->
<?php else : ?>
<div class="entry-content">
<?php the_content( __( 'Continua a leggere <span class="meta-nav">→</span>', 'twentyten' ) ); ?>
<?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pagine:', 'twentyten' ), 'after' => '</div>' ) ); ?>
</div><!-- .entry-content -->
<?php endif; ?>
Nel tuo file loop-category.php la cosa più semplice da fare sarebbe copiare e incollare l'intero file loop.php e modificare la sezione di codice sopra in:
<?php if ( is_search() ) : // Mostra solo estratti per la ricerca. ?>
<div class="entry-summary">
<?php the_excerpt(); ?>
</div><!-- .entry-summary -->
<?php else : ?>
<div class="entry-content">
<?php the_content( __( 'Continua a leggere <span class="meta-nav">→</span>', 'twentyten' ) ); ?>
<?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pagine:', 'twentyten' ), 'after' => '</div>' ) ); ?>
</div><!-- .entry-content -->
<?php endif; ?>
Noterai che abbiamo semplicemente rimosso is_archive
dall'istruzione condizionale, quindi ora gli archivi delle categorie verranno mostrati usando il codice dopo l'istruzione else che contiene the_content
invece di the_excerpt
.

è davvero fantastico; ha funzionato perfettamente! All'inizio non avevo capito che avrei dovuto copiare l'intero contenuto di loop.php in loop-category.php. Penso che stia iniziando a capire come funzionano i child theme ed è un concetto piuttosto interessante.

Avremmo potuto modificare direttamente loop.php ma sarebbe stato sovrascritto al prossimo aggiornamento rilasciato.

Si potrebbe personalizzare loop.php
allo stesso modo - i file nel child theme non vengono sovrascritti dagli aggiornamenti del tema padre (è proprio questo il punto :). Inoltre, se si usa loop-category.php
, il condizionale if ( is_search() )...
può essere rimosso completamente, perché questo loop verrà chiamato solo nelle pagine di categoria comunque.

Ho appena rimosso la seconda istanza di "is_archive() ||" dal file loop.php e ora viene visualizzato l'intero post nella pagina della categoria/catslug. Non ho avuto bisogno di creare un file loop-category.php. Non sarei riuscito a farlo senza le istruzioni di Chris_O. Grazie, Chris!!
