J'ai un CPT qui supporte les commentaires. Ce CPT est destiné à un usage interne uniquement. Cependant, les commentaires apparaissent dans le widget par défaut "Commentaires récents". Ils apparaissent également dans le flux RSS.
Existe-t-il un moyen simple d'empêcher les commentaires d'un CPT de s'afficher dans des widgets, des flux, etc.?
Je vous remercie
Les arguments du widget de commentaires récents peuvent être personnalisés à l'aide du filtre widget_comments_args
. Pour personnaliser les types d'articles dont les commentaires seront inclus, nous pouvons personnaliser la variable $post_type
:
$post_type
Type de publication ou tableau de types de publication pour lesquels récupérer des commentaires associés. Passez "any" pour correspondre à n'importe quelle valeur. Par défaut vide.
Par défaut, tous les commentaires des types de publication seront inclus. Le code suivant définit $post_type
dans un tableau contenant uniquement post
afin que seuls les commentaires des publications apparaissent. Pour inclure des types de publication supplémentaires, ajoutez-les simplement au tableau.
add_action( 'widget_comments_args', 'wpse_widget_comments_args' );
function wpse_widget_comments_args( $args ) {
$args['post_type'] = [
'post',
];
return $args;
}
Cet extrait de code (basé sur la solution trouvée ici ) vous permettra de supprimer les commentaires associés aux types de publication book
et product
(à titre d’exemple) du flux de commentaires RSS (http://example.com/comments/feed
). Cela fonctionne en modifiant la clause where
de la requête RSS de commentaires à l'aide du filtre comment_feed_where
.
add_filter( 'comment_feed_where', 'wpse_comment_feed_where' );
function wpse_comment_feed_where( $where ) {
return $where . " AND wp_posts.post_type NOT IN ( 'book', 'product' )";
}