因此,每当我尝试将fetch\\u feed与下面的URL一起使用时,我都会返回;WP HTTP错误:cURL错误28:操作在30070毫秒后超时,接收到0字节然而,当我在url上使用一个简单的卷曲时,会得到一个响应。因此,我只能得出结论,Fetch提要中的某些内容就是问题所在。有谁对如何克服这个问题有更好的想法吗?
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更新时不会更改?
最合适的回答,由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 );
} );