是否更改带有过滤器的WordPress RSS链接?

时间:2012-02-16 作者:andeersg

在我的主题中,我使用add_theme_support( \'automatic-feed-links\' ); 启用rss链接。

但我想创建一个选项,将Feedburner用于主rss提要,我的问题是我不知道如何连接并更改默认rss链接?

1 个回复
SO网友:Tom

您可以利用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 因为该函数旨在实际返回错误消息,而不仅仅是暂停执行)。

结束

相关推荐

非UTF字符中断RSS提要

我经常会遇到一个令人讨厌的问题,有时一个客座博主会无意中在帖子中放入一个非UTF字符或一个不平衡的HTML标记,这将破坏RSS提要,并导致FeedBurner无法通过电子邮件将其发送给订阅者。有没有一种技术方法可以避免此类问题?谢谢