Dans un type de message personnalisé, j'ai défini has_archive
sur false
. Dans l'en-tête d'une page CPT, je trouve néanmoins un lien vers un flux comme celui-ci:
<link … title="Page Title | Comments Feed" href="domain/cpt/slug/feed/" />
Le flux n'existe pas - le lien génère une erreur 404. J'ai essayé de supprimer le lien avec le filtre feed_links_show_comments_feed
qui n'a eu d'incidence que sur le fil de commentaires des publications régulières:
add_filter( 'feed_links_show_comments_feed', '__return_false' );
… Le flux de commentaires cpt était toujours là.
J'ai également essayé de déplacer tous les flux - qui fonctionnaient à nouveau pour tous les flux sauf celui que je voulais supprimer:
remove_action( 'wp_head', 'feed_links', 2 );
Si toutefois je définissais has_archive
à true
, le lien mènerait à un flux de commentaires valide, ce qui ne me dérangerait pas. Mais je ne peux pas avoir has_archive
défini sur true
car j'ai besoin du slug de base pour certaines pages personnalisées et je ne veux pas qu'une page d'archives apparaisse sur l'URL du slug.
J'espère que quelqu'un pourra me diriger dans la bonne direction? Tous les pointeurs sont les bienvenus. Je vous remercie!
La commande suivante masque le flux de commentaires pour les publications (WP 4.4+ requis!), Mais le fil de commentaires reste affiché dans les pages personnalisées, même si les commentaires sont désactivés pour cette page:
add_filter( 'feed_links_show_comments_feed', '__return_false' );
Pour résoudre ce problème, je devais également ajouter ce code supplémentaire:
function remove_comments_rss( $for_comments ) {
return;
}
add_filter('post_comments_feed_link','remove_comments_rss');
Vous pouvez supprimer le fil de commentaires d'un type de message personnalisé en indiquant à WordPress que les commentaires sont fermés pour un type de message particulier à l'aide du filtre comments_open
:
function close_comments( $open, $post_id ) {
if ( 'cpt' == get_post_type( $post_id ) ) {
$open = false;
}
return $open;
}
add_filter( 'comments_open', 'close_comments', 10, 2 );
Assurez-vous de remplacer "cpt" par le nom de votre type de message.