Как удалить ленту комментариев CPT из head?


В пользовательском типе записи я установил has_archive в false. Однако в заголовке страницы CPT я все еще нахожу ссылку на такой канал:

<link … title="Page Title | Comments Feed" href="domain/cpt/slug/feed/" />

Канал не существует – ссылка выдает ошибку 404. Я попытался удалить ссылку с фильтром feed_links_show_comments_feed, которая повлияла только на ленту комментариев обычных сообщений:

add_filter( 'feed_links_show_comments_feed', '__return_false' );

...лента комментариев cpt все еще была там.

Я также попытался переместить все каналы , что снова сработало со всеми каналами, но тот, который я хотел удалить:

remove_action( 'wp_head', 'feed_links', 2 );

Если бы я, однако, установил has_archive в true, ссылка фактически привела бы к действительной rss–ленте комментариев, против которой я в принципе не возражал бы. Но я не могу установить has_archive в true, так как мне нужен базовый слаг для какой-то пользовательской страницы, и я не хочу, чтобы страница архивов отображалась на URL-адресе слага.

Надеюсь, кто-нибудь сможет указать мне правильное направление? Все указатели приветствуются. Спасибо!

Author: tillinberlin, 2016-02-25

2 answers

Следующая команда скрывает ленту комментариев для сообщений (требуется WP 4.4+!), Но на пользовательских страницах все еще отображается лента комментариев, даже если комментарии отключены для такой страницы:

add_filter( 'feed_links_show_comments_feed', '__return_false' );

Чтобы решить эту проблему, мне также пришлось добавить этот дополнительный код:

function remove_comments_rss( $for_comments ) {
    return;
}
add_filter('post_comments_feed_link','remove_comments_rss');
 3
Author: user2100505, 2016-10-11 18:20:39

Вы можете удалить ленту комментариев для пользовательского типа записи, сообщив WordPress, что комментарии закрыты для определенного типа записи, используя 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 );

Убедитесь, что вы заменили "cpt" на свое имя типа сообщения.

 0
Author: Jeroen Schmit, 2017-09-11 08:24:23