您可以利用template_redirect
将任何请求挂接到WordPress提要并重定向到您定义的URL。
需要考虑的最重要的事情是用户试图访问提要本身的情况。在这种情况下,您显然不想进行任何重定向。
您可以这样做:
function example_redirect_feeds() {
// We only want to redirect if we\'re accessing the feed.
if(is_feed()) {
// Define the URL\'s to which we\'ll redirect...
$feed_url = \'YOUR_FEED_REDIRECT_URL\';
$comment_feed_url = \'YOUR_COMMENT_FEED_REDIRECT_URL\';
global $feed, $withcomments;
// If the user is requesting to access the comment feed, redirect...
if($feed == \'comments-rss2\' || $withcomments) {
header("Location: " . $comment_feed_url);
die();
// ...otherwise, go ahead and redirect to the feeds you defined above.
} else {
// We need to capture all different feed types
switch($feed) {
case \'feed\':
case \'rdf\':
case \'rss\':
case \'rss2\':
case \'atom\':
header("Location: " . $feed_url);
die();
break;
default:
break;
} // end switch/case
} // end if/else
} // end if
} // end example_redirect_feeds
add_action(\'template_redirect\', \'example_redirect_feeds\');
如果您也计划重定向评论流的提要,那么您也需要将其添加到此函数中。
请注意,我不确定是否使用die
是这里的最佳实践-它完成了工作,但“感觉”有点弱(尽管它比wp_die
因为该函数旨在实际返回错误消息,而不仅仅是暂停执行)。