web-dev-qa-db-fra.com

définir des commentaires comme valeur par défaut pour les pages et les types de publication personnalisés?

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

Au départ, j’utilisais simplement les 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.

19
Mild Fuzz

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, tandis 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' );
8
sorich87

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 une seule). si on aime)

Cela devrait fonctionner pour vous, il vous suffit d’ajouter les types de publication auxquels le code doit s’appliquer comme des cas à l’intérieur du 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 spécifiquement les commentaires pour les types d'article tout en laissant les autres hériter de default status de l'option default_comment_status.

J'espère que cela pourra aider.... :)

10
t31os

J'ai écrit un plugin pour désactiver les commentaires sur les pages par défaut. http://wordpress.org/extend/plugins/page-comments-off-please/

Peut-être que ça va aider?

2
Techism

Selon ce fil de discussion , ce que vous demandez n'est pas possible sans l'utilisation d'un plugin ou d'une fonction personnalisée.

1
Travis Northcutt

Je vous recommande de continuer à utiliser vos conditions 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. Ce est possible.

Allez dans 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 seront 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 appropriée dans la boîte "Méta" de la boîte de dialogue "Discussion" de l'écran d'édition de publication individuelle/de page.

1
EAMann