如何删除或替换默认的RSS2模板?

时间:2015-02-20 作者:AlanP

我正在尝试添加自定义的RSS2模板,但无法停用当前的RSS2提要。删除do\\u feed\\u rss2操作似乎不起作用。我复制了feed-rss2。php到我的主题文件夹并对其进行了修改。但我没有成功删除默认的RSS2模板。

remove_all_actions( \'do_feed_rss2\' );
add_action( \'do_feed_rss2\', function( $for_comments ) {
    if ( $for_comments )
        load_template( ABSPATH . WPINC . \'/feed-rss2-comments.php\' );
    else
    {
        if ( $rss_template = locate_template( \'feed-rss2.php\' ) )
            // locate_template() returns path to file
            // if either the child theme or the parent theme have overridden the template
            load_template( $rss_template );
        else
            load_template( ABSPATH . WPINC . \'/feed-rss2.php\' );
    }
},10,1);

有什么想法吗?

更新:最后我没有看到任何提要,但是如果注释掉这些代码,提要就不会回来,即使我刷新了重写规则。

1 个回复
最合适的回答,由SO网友:AlanP 整理而成

我没有找到替换默认提要“提要”的方法,但我能够添加一个新提要“rss提要”,并更改了标题中的链接,表示新提要是默认提要:

function my_rss_template() {
    add_feed( \'rss-feed\', \'my_custom_rss_render\' );
}

function my_custom_rss_render() {
    get_template_part( \'feed\', \'rss-feed\' );
}

add_action(\'init\',\'my_rss_template\');

function custom_rss($output, $show) {
    if (in_array($show, array(\'rss_url\', \'rss2_url\', \'rss\', \'rss2\', \'\')))
    $output = site_url() . \'/rss-feed\';
    return $output; 
}

add_filter(\'bloginfo_url\', \'custom_rss\', 10, 2);
add_filter(\'feed_link\', \'custom_rss\', 10, 2);
我复制了feed-rss2文件。php从wp-inlcudes文件夹到我的主题文件夹,将其重命名为rss-feed。php并根据我的需要对其进行了修改。之后,不要忘记在仪表板设置中更新永久链接。

结束

相关推荐

开发像Alltop.com这样的网站-RSS阅读问题

我正在创建一个像AllTop这样的网站。COM。为此,我使用了超级RSS阅读器插件(尽管该插件提供了一个小部件,但我已经在帖子中添加了该小部件)。假设我每一页添加了大约50个博客。因此,当加载我的博客页面时,它会从40多个博客(来自RSS提要)获取数据。这是个问题吗?我的意思是,这会不会对我的服务器和他们的服务器造成问题,因为我的博客中有太多的请求)?