Как вывести количество фолловеров в Twitter в виде текста

Самый простой способ вывести количество фолловеров для вашего Twitter-аккаунта — это использовать официальную кнопку «Читать» от Twitter. Однако, если вы не хотите замедлять свой сайт, подгружая дополнительный скрипт с хоста twitter, или же вы создаете в теме что-то «свое» и нужно вывести количество фолловеров в виде текста, а не кнопки? Тогда сегодняшняя статья подойдет вам как нельзя кстати. В ней мы расскажем как вывести количество фолловеров в вашем твиттере в виде текста на вашем сайте на WordPress.

Задаётесь вопросом, как это сделать? Во-первых, необходимо создать Twitter App, чтобы полноценно использовать Twitter API для того, чтобы «вытянуть» количество фолловеров. Также мы будем использовать кеш для улучшения производительности, а затем выведем цифру на сайте. Готовы? Начали!

Первое, что делаем, это создаем приложение Twitter для сайта, на котором вы хотите отобразить счетчик фолловеров. Переходим на сайт Twitter Developers и логинимся под своим Twitter-аккаунтом. После входа создаем новое приложение.

creatingtwitterapp[1]

В следующей форме укажите имя для приложение (может быть каким угодно), в идеале взять название своего сайта. Укажите описание для приложения (можно указать то же описание, что и у вашего блога, или любое другое). В поле 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 на те, что вы получили выше.

1function getTwitterFollowers($screenName = 'advdevise')
2{
3    // несколько переменных
4    $consumerKey = 'ВАШ_CONSUMER_KEY';
5    $consumerSecret = 'ВАШ_CONSUMER_SECRET';
6    $token = get_option('cfTwitterToken');
7  
8    // получаем количество фолловеров из кеша
9    $numberOfFollowers = get_transient('cfTwitterFollowers');
10  
11    // версия кеша не существует или истекла
12    if (false === $numberOfFollowers) {
13        // получаем аутентификатора, если еще нет ни одного
14        if(!$token) {
15            // подготавливаем полномочия
16            $credentials = $consumerKey . ':' . $consumerSecret;
17            $toSend = base64_encode($credentials);
18  
19            // аргументы http post
20            $args = array(
21                'method' => 'POST',
22                'httpversion' => '1.1',
23                'blocking' => true,
24                'headers' => array(
25                    'Authorization' => 'Basic ' . $toSend,
26                    'Content-Type' => 'application/x-www-form-urlencoded;charset=UTF-8'
27                ),
28                'body' => array( 'grant_type' => 'client_credentials' )
29            );
30  
31            add_filter('https_ssl_verify', '__return_false');
32            $response = wp_remote_post('https://api.twitter.com/oauth2/token', $args);
33  
34            $keys = json_decode(wp_remote_retrieve_body($response));
35  
36            if($keys) {
37                // Сохраняем токен в таблицу wp_options
38                update_option('cfTwitterToken', $keys->access_token);
39                $token = $keys->access_token;
40            }
41        }
42 
43        $args = array(
44            'httpversion' => '1.1',
45            'blocking' => true,
46            'headers' => array(
47                'Authorization' => "Bearer $token"
48            )
49        );
50  
51        add_filter('https_ssl_verify', '__return_false');
52        $api_url = "https://api.twitter.com/1.1/users/show.json?screen_name=$screenName";
53        $response = wp_remote_get($api_url, $args);
54  
55        if (!is_wp_error($response)) {
56            $followers = json_decode(wp_remote_retrieve_body($response));
57            $numberOfFollowers = $followers->followers_count;
58        } else {
59            // получаем старое значение и прерываемся
60            $numberOfFollowers = get_option('cfNumberOfFollowers');
61            // раскомментируем нижеследующее для отладки
62            //die($response->get_error_message());
63        }
64  
65        // кеш на час
66        set_transient('cfTwitterFollowers', $numberOfFollowers, 1*60*60);
67        update_option('cfNumberOfFollowers', $numberOfFollowers);
68    }
69  
70    return $numberOfFollowers;
71}

Теперь добавляем строку кода в шаблон вашей темы в то место, где вы хотите вывести количество фоловеров в твиттере. Как вариант, это могут быть sidebar.php, header.php или любое другое место.

1<?php
2echo getTwitterFollowers('ваше_Имя_пользователя');
3 ?>

Вот и все. Все готово. Надеемся, что эта статья помогла вам вывести количество фолловеров в Twitter в виде текста в WordPress.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top