很多朋友都想去除wp的feed,之前整理过,发现并不能真正意义上的移除,这次这代码可以彻底移除feed文件并显示404页面,希望能帮到大家。

1.functon.php里面添加一下代码

// 删除 wp_head 输入到模板中的feed地址链接
add_action( 'wp_head', 'qui_wp_head', 1 );
function qui_wp_head() {
    remove_action( 'wp_head', 'feed_links', 2 );
    remove_action( 'wp_head', 'feed_links_extra', 3 );
} 
foreach( array( 'rdf', 'rss', 'rss2', 'atom' ) as $feed ) {
    add_action( 'do_feed_' . $feed, 'qui_remove_feeds', 1 );
}
unset( $feed );

// 当执行 do_feed action 时重定向到首页
function qui_remove_feeds() {
    wp_redirect( home_url(), 302 );
    exit();
} 
// 删除feed的重定向规则
add_action( 'init', 'qui_kill_feed_endpoint', 99 );

function qui_kill_feed_endpoint() {
    global $wp_rewrite;
    $wp_rewrite->feeds = array(); 
    // 运行一次后,记得删除下面的代码
    flush_rewrite_rules();
}

2.将然后前台随便打开一个页面之后,再回到function文件将  “flush_rewrite_rules()” 这句删除!我没有删除,没发现什么影响,但是大佬推荐删除!最后发现这句话的意思是 重写伪静态,那还是删除吧,不能每次进入一个页面都重写一次伪静态吧!

强烈建议删除了。