如何为Wordpress RSS2 feed添加CORS支持?

use*_*582 8 php wordpress rss2 http-headers cors

我正在尝试将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. 然后,我尝试使用"插件API /动作参考",即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');
    
    Run Code Online (Sandbox Code Playgroud)

再次,没有成功.现在我走到了尽头.有任何想法吗?

Tom*_*ard 11

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

add_action( 'pre_get_posts', 'add_header_origin', 9 );

function add_header_origin() {
    if (is_feed()){
        header( 'Access-Control-Allow-Origin: *' );
    }
}            
Run Code Online (Sandbox Code Playgroud)


小智 -1

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

header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true);
Run Code Online (Sandbox Code Playgroud)

添加

header("Access-Control-Allow-Origin: *");
Run Code Online (Sandbox Code Playgroud)

  • 该解决方案需要修改核心Wordpress文件,当Wordpress升级时,这些文件将被覆盖(这种情况经常发生)。我建议使用主题的 function.php 文件中的操作挂钩来包含附加标头的解决方案。 (2认同)