Come rimuovere la sezione commenti solo dalle pagine, non dagli articoli?

15 nov 2010, 16:51:53
Visualizzazioni: 6.98K
Voti: 6

Come rimuovere la sezione commenti solo dalle pagine, non dagli articoli?

0
Tutte le risposte alla domanda 3
3

Se desideri visualizzare i commenti e il modulo dei commenti sugli articoli ma non sulle pagine, devi suddividere la logica nel tuo file template per chiamare comments_template() in base al tipo di elemento visualizzato (articolo o pagina). Ci sono due modi per farlo: puoi mantenere un unico file template per entrambi gli elementi e utilizzare i tag condizionali:

if (!is_page()) {
     comments_template();
}

L'altra opzione è utilizzare sia un file template single.php per i tuoi articoli sia un page.php per le tue pagine (vedi la Gerarchia dei Template per maggiori informazioni). Basta omettere la chiamata a comments_template() nel template della pagina. Se non ci sono altre differenze tra il layout di un articolo e quello di una pagina, un file template combinato con i tag condizionali è probabilmente migliore per la manutenibilità.

Se vuoi farlo "a distanza", ovvero dove il file template include già una chiamata a comments_template(), puoi creare un plugin che si aggancia al filtro comments_template e lo reindirizza a un file vuoto nella directory (beh, potrebbe anche essere lo stesso file del plugin - poiché contiene solo codice PHP, non visualizzerà nulla - ma questo potrebbe confondere gli altri).

add_filter('comments_template', 'no_comments_on_page');
function no_comments_on_page( $file )
{
    if ( is_page() ) {
        $file = dirname( __FILE__ ) . '/empty-file.php';
    }
    return $file;
}
15 nov 2010 17:12:25
Commenti

Ciao Jan, grazie per la risposta. Esiste qualche plugin per farlo senza dover intervenire sul codice?

Jitendra Vyas Jitendra Vyas
15 nov 2010 17:33:05

@metal-gear-solid: ho aggiornato la mia risposta con un esempio per farlo tramite un plugin. Non so se esista un plugin che faccia questo, ma è davvero semplice quindi puoi inserirlo tu stesso in un file plugin.

Jan Fabry Jan Fabry
15 nov 2010 18:08:06

Manualmente posso rimuovere la sezione commenti per ogni pagina deselezionando queste opzioni http://farm2.static.flickr.com/1280/5179502796_b9e09c10ba.jpg. E ho appena trovato questo plugin che manterrà queste caselle deselezionate per tutte le pagine, ma non per gli articoli http://wordpress.org/extend/plugins/page-comments-off-please/

Jitendra Vyas Jitendra Vyas
15 nov 2010 18:59:10
0

Mi piace molto questo snippet dal tema Hybrid all'inizio del template comments.php che disabilita in modo flessibile i commenti se non sono supportati o disabilitati su base per-post/per-pagina:

if ( !post_type_supports( get_post_type(), 'comments' ) || ( !have_comments() && !comments_open() && !pings_open() ) )
    return;
15 nov 2010 17:38:33
0

a seconda del tema.

controlla il codice di pages.php e rimuovi tutto ciò che riguarda i commenti

fai attenzione a non rovinare il design.

Se puoi pubblicare qui il codice di pages.php, speriamo di poter aiutare a indicare le modifiche necessarie

15 nov 2010 21:52:22