针对FILE_GET_CONTENTS的PHP错误,其短代码为:“没有合适的包装器”

时间:2016-12-04 作者:BlueDogRanch

为什么我会在这个短代码中看到PHP警告“没有合适的包装器”来表示file\\u get\\u内容?这可能更像是一个PHP问题,而不是WordPress。

短代码工作正常,并在页面/帖子中输出。但我的错误日志中充满了警告。我知道PHP警告并不严重,但我仍然想修复引发警告的代码。

// Wikipedia Last Edit Date

function wikipedia_article_date() {

$url = "https://en.wikipedia.org/w/api.php?action=query&titles=Test_article&prop=revisions&rvlimit=1&format=json";

$data = json_decode(file_get_contents($url), true);
$date = $data[\'query\'][\'pages\'][\'746140638\'][\'revisions\'][0][\'timestamp\'];

$date = new DateTime($date);
return $date->format(\'m-d-Y\'); 
}

add_shortcode(\'article_date\',\'wikipedia_article_date\');

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

Use the HTTP API:

$http = wp_remote_get( \'https://en.wikipedia.org/w/api.php?action=query&titles=Test_article&prop=revisions&rvlimit=1&format=json\' );

if ( ! $body = wp_remote_retrieve_body( $http ) )
    return;

if ( ! $data = json_decode( $body, true ) )
    return;

$date = new DateTime( $data[\'query\'][\'pages\'][\'746140638\'][\'revisions\'][0][\'timestamp\'] );

return $date->format( \'m-d-Y\' );