Skip to content

Instantly share code, notes, and snippets.

@nkkollaw
Forked from joshuadavidnelson/remove-feeds.php
Created May 26, 2017 23:33
Show Gist options
  • Save nkkollaw/2031f220111118f52fdb8bb171ce5634 to your computer and use it in GitHub Desktop.
Save nkkollaw/2031f220111118f52fdb8bb171ce5634 to your computer and use it in GitHub Desktop.
Remove all feeds from WordPress
<?php
add_action( 'wp_head', 'remove_feeds_from_wp_head', 1 );
/**
* Remove feed links from wp_head
*/
function remove_feeds_from_wp_head() {
// Remove feed links
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'feed_links_extra', 3 );
// Remove Really Simple Discovery Link
remove_action( 'wp_head', 'rsd_link' );
// Remove referecne to index page
remove_action('wp_head', 'index_rel_link');
}
foreach( array( 'rdf', 'rss', 'rss2', 'atom' ) as $feed ) {
add_action( 'do_feed_' . $feed, 'remove_feeds', 1 );
}
unset( $feed );
/**
* prefect actions from firing on feeds when the `do_feed` function is
* called
*/
function remove_feeds() {
// redirect the feeds! don't just kill them
wp_redirect( home_url(), 302 );
exit();
}
add_action( 'init', 'kill_feed_endpoint', 99 );
/**
* Remove the `feed` endpoint
*/
function kill_feed_endpoint() {
// This is extremely brittle.
// $wp_rewrite->feeds is public right now, but later versions of WP
// might change that
global $wp_rewrite;
$wp_rewrite->feeds = array();
}
register_activation_hook( __FILE__, 'activation_hook' );
/**
* Activation hook
*/
function activation_hook() {
kill_feed_endpoint();
flush_rewrite_rules();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment