如何通过函数修改默认提要

时间:2013-06-02 作者:m3tsys

我正在尝试向默认wordpress提要添加功能。问题是我通过修改rss提要php文件成功地做到了这一点。我想到的第二个问题是,当wp得到更新时,文件也会更新,我的代码也会消失。

因此,我正在寻找一种方法来插入我的代码作为rss提要的过滤器或其他东西。

注:My code does not modify the default feed content, instead i want to display another feed from external site.

add_filter( \'the_name_for_the_rss_filter\', \'my_function\' );

function my_function( $some_var ){ global $some_var;

if($some_var == true){

// let\'s say: 
// echo file_get_contents("http://example.com/feed/");
// exit(0);

}

}

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

你可以试试template_redirect 覆盖默认提要模板的操作:

add_action( \'template_redirect\', \'custom_template_redirect\' );
function custom_template_redirect() {
    if (!is_feed()) 
         return;

    header(\'Content-Type: \' . feed_content_type(\'rss-http\') . \'; charset=\' . get_option(\'blog_charset\'), true);

    // your own template stuff here 

    exit();     
}

SO网友:Sven

使用fetch_feed() 如果要分析外部提要:

<?php $feed = fetch_feed( $uri ); ?>
更新1:删除默认提要:

remove_action(\'wp_head\', \'feed_links_extra\', 3 );
remove_action(\'wp_head\', \'feed_links\', 2 );
更新2:添加自定义源:

add_action(\'wp_head\', \'add_custom_feed\');
function add_custom_feed() {
    echo \'<link rel="alternate" type="application/rss+xml" title="Custom Feed" href="\' . get_bloginfo(\'rss_url\') . \'" />\'; 
}

结束