Fetch_Feed cURL error 28

时间:2020-12-30 作者:Picard102

因此,每当我尝试将fetch\\u feed与下面的URL一起使用时,我都会返回;WP HTTP错误:cURL错误28:操作在30070毫秒后超时,接收到0字节

include_once( ABSPATH . WPINC . \'/feed.php\' );
$feed_url = \'https://www.cbc.ca/podcasting/includes/frontburner.xml\';
$rss = fetch_feed( $feed_url );
var_dump($rss);
编辑:我在fetch\\u feed函数中做了一些挖掘,当我注释掉它时发现它起了作用

$feed->set_file_class( \'WP_SimplePie_File\' );
有什么原因吗?有没有办法在主题文件中进行此更改,以便在wordpress更新时不会更改?

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

可能只有我们,但似乎需要设置一个用户代理,而不是存储在SIMPLEPIE_USERAGENT 常数,且具有fetch_feed(), 您可以使用wp_feed_options hook 设置自定义用户代理(或不设置)对我也有效。

工作示例:

add_action( \'wp_feed_options\', function ( $feed ) {
    $feed->set_useragent( \'MyPlugin/1.0\' );              // works
    $feed->set_useragent( $_SERVER[\'HTTP_USER_AGENT\'] ); // works
    $feed->set_useragent( \'\' );                          // empty; worked for me..

    // You can also try increasing the timeout, but the default one (10 seconds)
    // worked fine for me.
    $feed->set_timeout( 15 );
} );