désactivant les commentaires par défaut pour les pages et les types de publication personnalisés?

19

Je souhaite désactiver les commentaires par défaut avec les pages et les types personnalisés

Au départ, j'ai simplement utilisé des conditions conditionnelles dans la fonction d'affichage des commentaires pour éviter d'afficher le bloc sur ces pages, mais j'ai besoin que l'utilisateur puisse réactiver les commentaires si nécessaire.

    
posée Mild Fuzz 21.09.2010 - 12:20

6 réponses

8

D'après ce que j'ai compris, vous souhaitez définir les pages et certains types de publication personnalisés pour que les commentaires soient désactivés par défaut, alors que les publications utiliseront toujours l'option par défaut (c'est-à-dire commenter "sur"). Si tel est le cas, la fonction suivante le fera.

function default_comments_off( $data ) {
    if( $data['post_type'] == 'page' && $data['post_status'] == 'auto-draft' ) {
        $data['comment_status'] = 0;
    }

    return $data;
}
add_filter( 'wp_insert_post_data', 'default_comments_off' );
    
réponse donnée sorich87 22.09.2010 - 08:38
10

Lorsque vous créez une nouvelle publication (type personnalisé ou normal), WordPress appelle get_default_post_to_edit qui définit ensuite les valeurs par défaut d'une nouvelle publication.

Cette fonction fournit quelques crochets de filtre pour changer le titre, le contenu et l'extrait par défaut, mais malheureusement rien d'autre ... cependant, chaque filtre transmet l'objet complet $post au rappel, ce qui signifie qu'il est possible de redéfinir plusieurs propriétés (ou juste un si nous aimons)

Cela devrait fonctionner pour vous, ajoutez simplement les types de publication auxquels le code doit s'appliquer comme cas dans le commutateur .. (le film et la page sont des exemples) ..

function my_default_content( $post_content, $post ) {
    if( $post->post_type )
    switch( $post->post_type ) {
        case 'page':
        case 'movie':
            $post->comment_status = 'closed';
        break;
    }
    return $post_content;
}
add_filter( 'default_content', 'my_default_content', 10, 2 );

Le code a été testé sur WP 3.0.1 et a pour effet souhaité de désactiver les commentaires pour les types de publication de manière spécifique, tout en laissant les autres hériter du statut par défaut de l'option default_comment_status .

J'espère que cela vous aidera ....:)

    
réponse donnée t31os 09.11.2010 - 16:51
2

J'ai écrit un plugin pour désactiver les commentaires sur les pages par défaut. enlace

Peut-être que cela vous aidera?

    
réponse donnée Techism 24.09.2010 - 20:53
1

Selon ce fil , vous demandez ce que vous demandez isn pas possible sans l'utilisation d'un plugin personnalisé ou d'une fonction pour le réaliser.

    
réponse donnée Travis Northcutt 21.09.2010 - 16:16
1

Je vous recommanderais de continuer à utiliser vos conditionnelles dans l'affichage des commentaires, mais utilisez des options pour stocker vos paramètres conditionnels. Ensuite, vous pouvez ajouter une page au menu Paramètres qui permet aux administrateurs d'activer ou de désactiver les commentaires si nécessaire.

Mettre à jour

Il me semble que vous souhaitez définir le paramètre par défaut pour les commentaires sur "Désactivé" en tant que paramètre global plutôt que de le définir sur "Désactivé" chaque fois que vous créez une page. Ceci est possible.

Accédez à Paramètres > > Discussion dans la section admin de WordPress. Dans la première section ("Paramètres d'article par défaut", vous verrez une option intitulée "Autoriser les personnes à poster des commentaires sur les nouveaux articles" ... décochez cette option.

Désormais, par défaut, les commentaires sont désactivés pour tous les nouveaux articles, pages et types d'articles personnalisés. Vous pouvez toujours réactiver les commentaires au cas par cas en cochant la case correspondante dans la case "Discussion" de l'écran d'édition de publication individuelle / de page.

    
réponse donnée EAMann 21.09.2010 - 16:39
-2

Si vous ajoutez simplement ce code dans le fichier functions.php

<?php
add_post_type_support( 'your_custom_post_type', array( 'comments' ) );
?>

Allez au message et, dans les options de l'écran, cochez "Discussion" et "Commentaires", vous pouvez activer / désactiver les commentaires pour chaque type de message personnalisé.

    
réponse donnée kaizer1v 05.11.2011 - 09:23

Lire d'autres questions sur les étiquettes