8

我正在尝试将 CORS ( http://enable-cors.org/ ) 支持添加到自定义 Wordpress 主题中的 RSS2 提要。我尝试了以下方法,但均无济于事:

  1. 按照https://web.archive.org/web/20140314152828/http://bowdenweb.com:80/wp/2011/05/how-to-enable-cors-in-wordpress.html上的说明,我尝试了修改主题的 header.php 文件并添加以下代码:

    header("Access-Control-Allow-Origin: *");

    这成功地将 CORS 标头添加到 Wordpress 帖子中,但没有添加到 RSS2 提要中。

  2. 然后,我尝试使用“Plugin API / Action Reference”,即add_action函数(http://codex.wordpress.org/Plugin_API/Action_Reference)。

    我在 header.php 中添加了以下代码:

    function add_cors_headers()
    {
        header("Access-Control-Allow-Origin: *");
    }
    
    add_action('rss2_head','add_cors_headers');
    

再次,没有成功。现在我陷入了死胡同。有任何想法吗?

4

3 回答 3

4

您可以使用插件或添加功能来做到这一点。我认为这最终会变得更清洁。

add_action( 'pre_get_posts', 'add_header_origin' );

function add_header_origin() {
    if (is_feed()){
        header( 'Access-Control-Allow-Origin: *' );
    }
}            
于 2016-03-26T20:20:41.450 回答
2

将原始 rss 模板“wp-includes/feed-rss2.php”复制到您的主题目录并通过将此代码添加到您的 functions.php 来激活它:

remove_all_actions( 'do_feed_rss2' );
add_action( 'do_feed_rss2', 'my_feed_rss2', 10, 1 );

function my_feed_rss2( $for_comments ) {
    $rss_template = get_stylesheet_directory() . '/feed-rss2.php';

    if( file_exists( $rss_template ) )
        load_template( $rss_template );
    else
        do_feed_rss2( $for_comments ); // Call default function
}

然后您可以修改您的 rss 模板并添加 jefffederman 提到的标题。

于 2013-02-13T12:18:33.943 回答
0

转到 wp-includes/feed-rss2.php 及以下

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

添加

header("Access-Control-Allow-Origin: *");
于 2013-01-25T17:00:33.807 回答