WordPress редирект с feed на 404. Как отключить фид ленту на сайте
И так у нас есть feed ленты на сайте. И когда мы переходим по ссылке по типу /feed/ она отображается. Нам нужно отключить feed и убрать ссылки в head страницы также. А еще перенаправить пользователей на 404 страницу.
Для начала удалить хуки отвечающие за вывод feed ленты в head.
remove_action( 'wp_head', 'feed_links_extra', 3 );
remove_action( 'wp_head', 'feed_links', 2 );
Теперь сделаем редирект на страницу 404 с ошибкой что фид отсутствует.
add_action( 'do_feed', 'zalki_remove_feed_and_redirect', 1 );
add_action( 'do_feed_rdf', 'zalki_remove_feed_and_redirect', 1 );
add_action( 'do_feed_rss', 'zalki_remove_feed_and_redirect', 1 );
add_action( 'do_feed_rss2', 'zalki_remove_feed_and_redirect', 1 );
add_action( 'do_feed_atom', 'zalki_remove_feed_and_redirect', 1 );
add_action( 'do_feed_rss2_comments', 'zalki_remove_feed_and_redirect', 1 );
add_action( 'do_feed_atom_comments', 'zalki_remove_feed_and_redirect', 1 );
function zalki_remove_feed_and_redirect() {
wp_redirect( esc_url( home_url( '404' ) ), 301 );
die();
}
Обязательно делаем die в конце. Потому, что это всего лишь рекомендация для браузера для перехода дальше. Но не правило.
Более правильное решение.
Описанное выше решение имеет место быть, но существует более правильный подход это редирект на уровне Apache в файле .htaccess