如何在WordPress中获得推特粉丝数量

时间:2013-08-05 作者:gshft

我使用该函数获取推特关注者

function twitter_count($twitter_user){
         $count = get_transient(\'twitter_count\');
    if ($count !== false) return $count;
         $count = 0;
         $dataOrig = file_get_contents(\'http://twitter.com/users/show/\'.$twitter_user);
   if (is_wp_error($dataOrig)) {
         return \'Error!!!\';
   }else{
         $profile = new SimpleXMLElement ( $dataOrig );
         $countOrig = $profile->followers_count;
         $count = strval ( $countOrig );
         } 
set_transient(\'twitter_count\', $count, 60*60*24); // 24 hour cache
return $count;
我需要更换file_get_contents 对于wp_remote_get如何实现?

2 个回复
SO网友:s_ha_dum

您将替换此:

$dataOrig = file_get_contents(\'http://twitter.com/users/show/\'.$twitter_user);
if (is_wp_error($dataOrig)) {
     return \'Error!!!\';
}else{
     $profile = new SimpleXMLElement ( $dataOrig );
     $countOrig = $profile->followers_count;
     $count = strval ( $countOrig );
     } 
使用此选项:

$dataOrig = wp_remote_get(\'http://twitter.com/users/show/\'.$twitter_user);
if (is_wp_error($dataOrig)) {
     return \'Error!!!\';
} else {
     $profile = new SimpleXMLElement ( $dataOrig[\'body\'] );
     $countOrig = $profile->followers_count;
     $count = strval ( $countOrig );
} 
请注意wp_remote_get 返回一个数组,其中页体为body.

编辑:使用wp_remote_retrieve_body...

$dataOrig = wp_remote_get( \'https://twitter.com/users/show/\'.$twitter_user );

if ( is_wp_error( $dataOrig ) ) {
  return printf( \'%s: %s\', $dataOrig->get_error_code(), $dataOrig->get_error_message );
} elseif( 
  empty( $dataOrig )
  OR 200 !== wp_remote_retrieve_response_code( $dataOrig )
  OR \'OK\' !== wp_remote_retrieve_response_message( $dataOrig )
) {
  return _e( \'Nothing available\', \'your_textdomain\' );
} else {
  $dataContent = wp_remote_retrieve_body( $dataOrig );
  $profile = new SimpleXMLElement ( $dataContent );
  $countOrig = $profile->followers_count;
  $count = strval ( $countOrig );
}

SO网友:gshft

使用json解决了问题

    function twitter_count($twitter_user){
    $count = get_transient(\'twitter_count\');
    if ($count !== false) return $count;
         $count = 0;
    $response = wp_remote_retrieve_body(wp_remote_get( \'https://twitter.com/users/\'.$twitter_user.\'.json\', array( \'sslverify\' => false )));
    $json = json_decode( $response );
    if ( !is_wp_error( $dataContent ) ) {
    $countOrig = $json->followers_count;
    $count = strval ( $countOrig );
    } else {
    return _e( \'Error\', \'your_textdomain\' );
    }               
set_transient(\'twitter_count\', $count, 60*60); // 1 hour cache
return $count;
}

结束

相关推荐

从外部PHP脚本调用Functions.php中的函数

Preamble<我试图确保以前没有人问过这个问题。我刚开始使用StackExchange,所以我可能没有这么做。我不介意责备;厚皮肤,我学得很快:)THE PROBLEM我编写了一个函数并将其放置在主题函数中。phpfunction serverConnect() { $serverAccess = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); if (!$serverAccess) { die(\"