Intereting Posts
Заказ по нескольким мета-полям Можете ли вы установить роль автора? Как использовать таксономический термин как постоянную папку отображать случайные сообщения на index.php вместо последних Сделайте WordPress для поиска только этих тегов или исключите определенные теги из поиска Укажите пользовательский путь загрузки только для настраиваемого типа сообщений? Имеет ли WordPress счетчик посещений? Я переименовал свой сервер с http на https, и теперь я не могу войти в систему Ошибка при установлении соединения с базой данных – после обновления DNS Удалить пользовательскую таксономию из-за постоянной связи Не удается сортировать get_posts по post_mime_type Переменная не работает в цикле боковой панели как переместить другую машину или сервер, не имея дело с IP Как добавить дополнительную проверку в функцию проверки параметров темы с помощью add_filter? Запретить или отключить автоматическую проверку обновлений

как получить число твиттер-последователей в wordpress

Я использовал функцию для получения твитер-последователей

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 как это реализовать?

Вы заменили бы это:

 $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 ); } 

решена проблема с использованием 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; }