FILE_GET_CONTENTS-无法打开流

时间:2010-12-20 作者:Саша Стефановић

我的函数中有此代码。php用于获取位上的短URL。ly公司

function bitly() {
global $post;
$bitly = file_get_contents(\'http://api.bit.ly/v3/shorten?login=USER&apiKey=KEY&longUrl=\'.urlencode(get_permalink($post->ID)).\'&format=txt\');
echo $bitly;
}
但是,有时我会遇到这样的错误:“Function.file get contents:打开流失败:HTTP请求失败!HTTP/1.1 403在functions.php的第614行被禁止”

第614行是上面的代码。我想要的是处理这个错误,而不是向用户显示它。但却没有表现出来。ly短url,如果出现错误404,我想显示默认wp。用户的me url或wp(如果不可能)。我然后整个url。

EDITI用此代码修复了此问题

function bitly() {
global $post;
$bitly = wp_remote_retrieve_body (wp_remote_get(\'http://api.bit.ly/v3/shorten?login=USERNAME&apiKey=APIKEY&longUrl=\'.urlencode(get_permalink($post->ID)).\'&format=txt\'));
if( is_wp_error( $bitly ) ) {
echo wp_get_shortlink($post->ID); }
else { echo $bitly; }
}

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

我同意这是PHP而不是WP的问题。

为了使其更接近WP,我建议查看以下功能:

  • HTTP API 强烈建议进行HTTP请求
  • add_post_meta() 以及相关的元函数来存储特定于岗位的信息
  • the_shortlink() 函数,这是建议用于natvie短链接功能的模板标记(并为第三方挂钩)

结束

相关推荐

获取在Functions.php中设置的变量,并在我的Custom Post模板中回显它们

在我的函数中设置了以下函数。php文件,以允许我的自定义帖子类型“Slideshow”工作。add_action( \'the_post\', \'paginate_slide\' ); function paginate_slide( $post ) { global $pages, $multipage, $numpages; if( is_single() && get_post_type() == \'lom_s