Bước đầu tiên: xóa các liên kết nguồn cấp từ phần trang web của bạn.
<?php
add_action( 'wp_head', 'wpse33072_wp_head', 1 );
/**
* Remove feed links from wp_head
*/
function wpse33072_wp_head()
{
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'feed_links_extra', 3 );
}
Tiếp theo, hãy xóa các điểm cuối nguồn cấp dữ liệu khỏi WP. Nối vào init
, toàn cầu hóa $wp_rewrite
sau đó đặt các nguồn cấp dữ liệu thành một mảng trống. Điều này có hiệu quả ngăn chặn WordPress thêm việc viết lại nguồn cấp dữ liệu. Nó cũng siêu hackish và có thể sẽ phá vỡ vào một thời điểm nào đó trong tương lai.
<?php
add_action( 'init', 'wpse33072_kill_feed_endpoint', 99 );
/**
* Remove the `feed` endpoint
*/
function wpse33072_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();
}
Nhưng, nếu nó bị hỏng, điều đó không sao, bởi vì chúng tôi sẽ chuyển hướng nguồn cấp dữ liệu đến trang chủ.
<?php
foreach( array( 'rdf', 'rss', 'rss2', 'atom' ) as $feed )
{
add_action( 'do_feed_' . $feed, 'wpse33072_remove_feeds', 1 );
}
unset( $feed );
/**
* prefect actions from firing on feeds when the `do_feed` function is
* called
*/
function wpse33072_remove_feeds()
{
// redirect the feeds! don't just kill them
wp_redirect( home_url(), 302 );
exit();
}
Và bước cuối cùng: một móc kích hoạt để đặt nguồn cấp dữ liệu ghi lại của chúng tôi vào một mảng trống và xóa các quy tắc viết lại.
<?php
register_activation_hook( __FILE__, 'wpse33072_activation' );
/**
* Activation hook
*/
function wpse33072_activation()
{
wpse33072_kill_feed_endpoint();
flush_rewrite_rules();
}
Tất cả chỉ là một plugin .