Cum să elimini secțiunea de comentarii doar din pagini, nu și din postări

15 nov. 2010, 16:51:53
Vizualizări: 6.98K
Voturi: 6

Cum să elimini secțiunea de comentarii doar din pagini, nu și din postări?

0
Toate răspunsurile la întrebare 3
3

Dacă dorești să afișezi comentariile și formularul de comentarii pe articole, dar nu și pe pagini, trebuie să separi logica în fișierul template pentru a apela comments_template() în funcție de tipul elementului afișat (articol sau pagină). Există două metode pentru a face acest lucru: fie păstrezi un singur fișier template pentru ambele tipuri de conținut și folosești etichete condiționale:

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

Cea de-a doua opțiune este să folosești atât un fișier template single.php pentru articole, cât și un page.php pentru pagini (vezi Ierarhia de Template-uri pentru mai multe informații). Pur și simplu omite apelul către comments_template() în template-ul pentru pagini. Dacă nu există alte diferențe între layout-ul unui articol și al unei pagini, un fișier template combinat cu etichete condiționale este probabil mai bun pentru întreținere.

Dacă dorești să faci acest lucru "de la distanță", adică acolo unde fișierul template include deja un apel către comments_template(), poți crea un plugin care se conectează la filtrul comments_template și îl redirecționează către un fișier gol în director (de fapt, ar putea fi chiar fișierul pluginului însuși - deoarece conține doar cod PHP, nu va afișa nimic - dar acest lucru ar putea fi confuz pentru alții).

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
Comentarii

Salut Jan, Mulțumesc pentru răspuns. Există vreun plugin care să facă asta fără să intru în cod?

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

@metal-gear-solid: Am actualizat răspunsul meu cu un exemplu pentru a face asta dintr-un plugin. Nu știu dacă există un plugin care să facă asta, dar este foarte ușor așa că poți să-l plasezi singur într-un fișier de plugin.

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

Manual pot să elimin secțiunea de comentarii pentru fiecare pagină pentru a debifa aceste opțiuni http://farm2.static.flickr.com/1280/5179502796_b9e09c10ba.jpg. Și tocmai am găsit acest plugin care va menține aceste căsuțe debifate pentru toate paginile, dar nu și pentru articole http://wordpress.org/extend/plugins/page-comments-off-please/

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

Îmi place foarte mult acest fragment din tema Hybrid de la începutul șablonului comments.php care va dezactiva flexibil comentariile dacă acestea nu sunt suportate sau sunt dezactivate pe bază de post/pagină:

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

în funcție de temă.

verifică codul pages.php și elimină elementele legate de comentarii

fii atent să nu strici designul.

Dacă poți posta codul pages.php aici, sperăm că te putem ajuta cu modificările necesare

15 nov. 2010 21:52:22