Вы наверняка замечали, что если к концу любой страницы в WordPress дописать /feed , то будет сгенерена xml страница с фидом комментариев к этой странице. С некоторых пор Яндекс очень полюбил индексировать такие фиды. Моё глубокое мнение что на сайте нужно избавляться от любого не нужного дублирования контента. А на многих проектах комментарии очень ценный контент, так зачем его пессимизировать.
Проблема что вот так в лоб отключить фиды к комментариям в WordPress ( в админке там, или в теме ) нельзя. Но можно сделать вот так:
1. В файл functions.php вашей темы добавить:
1 2 3 |
add_filter('do_feed_rss2', function ($e){ die(); }, 9, 1); |
В этом случае вместо фида будет отдаваться пустая страница и дублей не будет. Основная лента публикаций при это не пострадает. Только комментарии.
Но пустая страница это не хорошо. Нужно отдавать правильные заголовки. В данном случае 404. Поэтому лучше сделать вот так.
2. В файл functions.php вашей темы добавить:
1 2 3 4 5 6 7 |
add_filter('do_feed_rss2', function ($e){ global $wp_query; $wp_query->set_404(); status_header(404); include( get_query_template( '404' ) ); die(); }, 9, 1); |
При этом в корне вашей темы у вас должен быть файлик 404.php который вы показываете на 404 ошибку.
Описанные приемы будут работать в рамках темы. Если хочется вырубить фиды на уровне ядра WordPress, то придется хардкодить.
Можно отредактировать /wp-includes/feed-rss2-comments.php где в самом начале поставить либо die(), либо тот же код выше для вывода 404 ошибки.
Или в wp-includes/default-filters.php удаляем
1 |
add_action( 'do_feed_rss2', 'do_feed_rss2', 10, 1 ); |
Но хардкод это фуфуфу, ди и при обновлении вордпресса все эти изменения могут затереться.
Также обратите внимание что ссылка на фид комментариев генерится в основном фиде в параметре
1 |
<span class="start-tag">wfw:commentRss</span> |
в шаблоне основного фида комментариев wp-includes/feed-rss2.php . Хорошо бы эту ссылку оттуда убрать, но там только хардкод.
Azzrael 2016-10-03