Самый простой способ вывести количество фолловеров для вашего Twitter-аккаунта — это использовать официальную кнопку «Читать» от Twitter. Однако, если вы не хотите замедлять свой сайт, подгружая дополнительный скрипт с хоста twitter, или же вы создаете в теме что-то «свое» и нужно вывести количество фолловеров в виде текста, а не кнопки? Тогда сегодняшняя статья подойдет вам как нельзя кстати. В ней мы расскажем как вывести количество фолловеров в вашем твиттере в виде текста на вашем сайте на WordPress.
Задаётесь вопросом, как это сделать? Во-первых, необходимо создать Twitter App, чтобы полноценно использовать Twitter API для того, чтобы «вытянуть» количество фолловеров. Также мы будем использовать кеш для улучшения производительности, а затем выведем цифру на сайте. Готовы? Начали!
Первое, что делаем, это создаем приложение Twitter для сайта, на котором вы хотите отобразить счетчик фолловеров. Переходим на сайт Twitter Developers и логинимся под своим Twitter-аккаунтом. После входа создаем новое приложение.
![creatingtwitterapp[1]](https://wpincode.com/wp-content/uploads/2013/08/creatingtwitterapp1.png)
В следующей форме укажите имя для приложение (может быть каким угодно), в идеале взять название своего сайта. Укажите описание для приложения (можно указать то же описание, что и у вашего блога, или любое другое). В поле website введите ссылку на свой проект, например https://wpincode.com.
Введите ту же ссылку в поле Callback URL. После заполнения формы жмем кнопку Create your Twitter application внизу страницы.
Это действие создать новое Twitter-приложение для вашего пользования. На следующей странице кликните на кнопку Create my access token. Вы увидите уведомление о том, что ваш токен для авторизации был создан.
На странице вашего Twitter-приложения нам понадобится только Consumer Key и Consumer Secret для следующего шага.
Скопируйте следующий код в файл functions.php вашей темы или в плагин для сайта WordPress. Замените Consumer Key и Consumer Secret на те, что вы получили выше.
function getTwitterFollowers($screenName = 'advdevise')
{
// несколько переменных
$consumerKey = 'ВАШ_CONSUMER_KEY';
$consumerSecret = 'ВАШ_CONSUMER_SECRET';
$token = get_option('cfTwitterToken');
// получаем количество фолловеров из кеша
$numberOfFollowers = get_transient('cfTwitterFollowers');
// версия кеша не существует или истекла
if (false === $numberOfFollowers) {
// получаем аутентификатора, если еще нет ни одного
if(!$token) {
// подготавливаем полномочия
$credentials = $consumerKey . ':' . $consumerSecret;
$toSend = base64_encode($credentials);
// аргументы http post
$args = array(
'method' => 'POST',
'httpversion' => '1.1',
'blocking' => true,
'headers' => array(
'Authorization' => 'Basic ' . $toSend,
'Content-Type' => 'application/x-www-form-urlencoded;charset=UTF-8'
),
'body' => array( 'grant_type' => 'client_credentials' )
);
add_filter('https_ssl_verify', '__return_false');
$response = wp_remote_post('https://api.twitter.com/oauth2/token', $args);
$keys = json_decode(wp_remote_retrieve_body($response));
if($keys) {
// Сохраняем токен в таблицу wp_options
update_option('cfTwitterToken', $keys->access_token);
$token = $keys->access_token;
}
}
$args = array(
'httpversion' => '1.1',
'blocking' => true,
'headers' => array(
'Authorization' => "Bearer $token"
)
);
add_filter('https_ssl_verify', '__return_false');
$api_url = "https://api.twitter.com/1.1/users/show.json?screen_name=$screenName";
$response = wp_remote_get($api_url, $args);
if (!is_wp_error($response)) {
$followers = json_decode(wp_remote_retrieve_body($response));
$numberOfFollowers = $followers->followers_count;
} else {
// получаем старое значение и прерываемся
$numberOfFollowers = get_option('cfNumberOfFollowers');
// раскомментируем нижеследующее для отладки
//die($response->get_error_message());
}
// кеш на час
set_transient('cfTwitterFollowers', $numberOfFollowers, 1*60*60);
update_option('cfNumberOfFollowers', $numberOfFollowers);
}
return $numberOfFollowers;
}
Теперь добавляем строку кода в шаблон вашей темы в то место, где вы хотите вывести количество фоловеров в твиттере. Как вариант, это могут быть sidebar.php, header.php или любое другое место.
<?php
echo getTwitterFollowers('ваше_Имя_пользователя');
?>
Вот и все. Все готово. Надеемся, что эта статья помогла вам вывести количество фолловеров в Twitter в виде текста в WordPress.
