web-dev-qa-db-fra.com

Comment supprimer le fil de commentaires CPT de la tête?

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!

1
tillinberlin

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');
3
user2100505

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.

0
Jeroen Schmit