web-dev-qa-db-fra.com

Comment supprimer une section de commentaire de la page uniquement, pas des pages de messages?

Comment supprimer une section de commentaire de la page uniquement, pas des pages de messages?

6
metal-gear-solid

Si vous souhaitez afficher les commentaires et le formulaire de commentaire sur les publications mais pas sur les pages, vous devez séparer la logique de votre fichier de modèle pour appeler comments_template() en fonction du type d'élément affiché (publication ou page). . Il existe deux façons de procéder: soit vous conservez un fichier de modèle pour les deux éléments et utilisez balises conditionnelles :

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

L'autre option consiste à utiliser à la fois un fichier de modèle single.php pour vos publications et un page.php pour vos pages (voir la hiérarchie des modèles pour plus d'informations). Laissez simplement l'appel à comments_template() dans le modèle de page. S'il n'y a pas d'autres différences entre une publication et une mise en page, un fichier de modèle combiné avec des balises conditionnelles est probablement meilleur pour la maintenabilité.

Si vous souhaitez effectuer cette opération "à distance", si le fichier de modèle inclut déjà un appel à comments_template(), vous pouvez créer un plug-in qui se connecte au filtre comments_template et le redirige vers un fichier vide dans le répertoire (cela pourrait même être le fichier de plugin lui-même - puisqu'il ne contient que PHP code, il n'affichera rien - mais cela déroutera les autres).

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;
}
7
Jan Fabry

J'aime beaucoup ce extrait du thème hybride au début du modèle comments.php qui désactivera de manière flexible les commentaires s'ils ne sont pas pris en charge ou désactivés par publication/page:

if ( !post_type_supports( get_post_type(), 'comments' ) || ( !have_comments() && !comments_open() && !pings_open() ) )
    return;
4
Rarst

selon le thème.

vérifier le code pages.php et supprimer les éléments liés aux commentaires

veillez à ne pas casser le design.

Si vous pouvez poster le code de pages.php ici, espérons que nous pourrons vous aider à indiquer les modifications à apporter.

0
mireille raad