Самый простой способ вывести количество фолловеров для вашего Twitter-аккаунта — это использовать официальную кнопку «Читать» от Twitter. Однако, если вы не хотите замедлять свой сайт, подгружая дополнительный скрипт с хоста twitter, или же вы создаете в теме что-то «свое» и нужно вывести количество фолловеров в виде текста, а не кнопки? Тогда сегодняшняя статья подойдет вам как нельзя кстати. В ней мы расскажем как вывести количество фолловеров в вашем твиттере в виде текста на вашем сайте на WordPress.
Задаётесь вопросом, как это сделать? Во-первых, необходимо создать Twitter App, чтобы полноценно использовать Twitter API для того, чтобы «вытянуть» количество фолловеров. Также мы будем использовать кеш для улучшения производительности, а затем выведем цифру на сайте. Готовы? Начали!
Первое, что делаем, это создаем приложение Twitter для сайта, на котором вы хотите отобразить счетчик фолловеров. Переходим на сайт Twitter Developers и логинимся под своим Twitter-аккаунтом. После входа создаем новое приложение.
В следующей форме укажите имя для приложение (может быть каким угодно), в идеале взять название своего сайта. Укажите описание для приложения (можно указать то же описание, что и у вашего блога, или любое другое). В поле 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.