WordPress wp_remote_get 函数远程获取的正确用法

张子凡 WordPress优化 2017-11-24 15:30:21 阅读(...) 评论(2)

WordPress可以通过 wp_remote_get() 或者 wp_remote_post() 非常容易的获取到远程文件的内容或者信息,取代了php的 file_get_contents 函数或者 cURL,但是子凡在最近开发的一些插件功能却发现打开的方式不对,某些情况下会提示:Fatal error: Cannot use object of type WP_Error as array… 的类似错误,并且还会引起插件页面空白的情况。

wp_remote_get

最近子凡的 Fanly Submit插件还算深受WordPress熊掌号用户的喜欢,也因此在不断的升级改版中加入了和完善了许多功能,从熊掌号的内测到开放,插件已经更新了无数次,所以为了能够第一时间让用户看到插件是否有更新,所以就不得不接入了泪雪建站的接口,以此来告诉提示用户拥有新版本可以更了。

为此就使用到了WordPress提供的 wp_remote_get 函数,来获取插件的最新版本号,但是新版本发布后几天就有一个用户反馈说升级插件后设置页面出现空白,或者提示:Fatal error: Cannot use object of type WP_Error as array in… 的错误信息,刚开始插件设置页面空白并没有发现是 wp_remote_get 函数引起的,也是子凡的一个大意,通过函数直接获取远程链接的信息,而并没有判断获取到的信息是否错误或者失败,所以才导致了这样一个问题,毕竟我们无法保证当前网站服务器是否能够正常的访问和获取原创服务器的数据,所以判断是很有必要的,正所谓吃一堑长一智,子凡算是长记性了。

那么今天子凡就分享一个 wp_remote_get 函数正确的使用方法吧!

1
2
3
4
5
6
// wp_remote_get 函数正确使用方法
$response = wp_remote_get( 'https://zhan.leiue.com?plugin=Fanly Submit' );
if ( is_array( $response ) && !is_wp_error($response) && $response['response']['code'] == '200' ) {
	$header = $response['headers']; // array of http header lines
	$body = $response['body']; // use the content
}

以上代码示例判断了三个条件,首先肯定是判断获取的数据是否是数组,这也是 WordPress 官方对 wp_remote_get 函数的默认示例方法,而子凡认为还有必要使用 is_wp_error 函数来判断错误,同时还判断了返回的状态码是否为200,争取做到万无一失。

更多关于WordPress优化及疑问可以添加QQ群:255308000

除非注明,否则均为泪雪博客原创文章,禁止任何形式转载

本文链接:https://zhangzifan.com/wordpress-wp_remote_get.html

留言评论

登录 后留言