Импортировать данные из социальных сетей в WordPress полезно для создания динамичного контента и удержания аудитории. В этой статье разберём, как создать автоматический импорт твитов из Twitter в WordPress, используя официальный API Twitter и планировщик задач WP Cron.
Подготовка: регистрация приложения в Twitter и получение ключей API
Для доступа к API Twitter необходимо зарегистрировать приложение на портале разработчиков Twitter. После создания приложения вы получите ключи и токены:
- API Key
- API Secret Key
- Access Token
- Access Token Secret
Эти данные понадобятся для аутентификации запросов к API Twitter.
Создание функции импорта твитов в WordPress
В файле functions.php вашей темы или в отдельном плагине добавьте следующий код. Он использует библиотеку abraham/twitteroauth для работы с API Twitter (наиболее популярная PHP-библиотека). Установите её через Composer или вручную.
require 'vendor/autoload.php';
use Abraham\TwitterOAuth\TwitterOAuth;
function wpcodex_import_tweets() {
$consumer_key = 'ВАШ_API_KEY';
$consumer_secret = 'ВАШ_API_SECRET';
$access_token = 'ВАШ_ACCESS_TOKEN';
$access_token_secret = 'ВАШ_ACCESS_TOKEN_SECRET';
$connection = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);
$params = [
'screen_name' => 'twitter', // замените на нужный аккаунт
'count' => 5, // количество твитов
'tweet_mode' => 'extended' // чтобы получить полный текст
];
$tweets = $connection->get('statuses/user_timeline', $params);
if (!empty($tweets)) {
foreach ($tweets as $tweet) {
// Проверяем, есть ли уже такой пост
$existing = get_posts([
'post_type' => 'post',
'meta_key' => 'wpcodex_tweet_id',
'meta_value' => $tweet->id_str,
'posts_per_page' => 1
]);
if (empty($existing)) {
// Создаём новый пост из твита
$post_data = [
'post_title' => 'Твит от ' . $tweet->created_at,
'post_content' => esc_html($tweet->full_text),
'post_status' => 'publish',
'post_author' => 1,
'meta_input' => [
'wpcodex_tweet_id' => $tweet->id_str
]
];
wp_insert_post($post_data);
}
}
}
}
Этот код подключается к API Twitter, получает последние 5 твитов указанного пользователя и создаёт посты в WordPress, если их ещё нет.
Настройка автоматического запуска с помощью WP Cron
Чтобы импорт происходил регулярно — раз в час или день, добавим задачу в WP Cron.
add_action('wpcodex_hourly_import', 'wpcodex_import_tweets');
function wpcodex_schedule_import() {
if (!wp_next_scheduled('wpcodex_hourly_import')) {
wp_schedule_event(time(), 'hourly', 'wpcodex_hourly_import');
}
}
add_action('wp', 'wpcodex_schedule_import');
Этот код регистрирует событие, которое будет запускать функцию импорта каждый час.
Обработка ошибок и расширение функционала
API Twitter может ограничивать количество запросов, поэтому важно обрабатывать возможные ошибки. Например, добавить проверку ответа и логировать ошибки.
if ($connection->getLastHttpCode() != 200) {
error_log('Ошибка API Twitter: ' . print_r($tweets, true));
return;
}
Также можно добавить фильтрацию твитов по хештегам, прикреплять изображения, использовать кастомный тип поста или интегрировать с плагином WPStories для создания визуальных историй из твитов.
Полезные советы по оптимизации и безопасности
Для хранения ключей API лучше использовать настройки плагина или wp-config.php, чтобы не хранить их в открытом виде в коде.
При большом количестве импорта стоит реализовать лимиты и кеширование, чтобы не перегружать сервер и не превысить лимиты Twitter API.
Если не хотите настраивать всё вручную, можно использовать готовые плагины, например, WPRemark, который поддерживает импорт из соцсетей с расширенными настройками.
Итог
Автоматический импорт твитов в WordPress — отличный способ оживить сайт свежим контентом из социальных сетей. Используя API Twitter и WP Cron, можно настроить надёжную систему обновления. Код из статьи легко адаптировать под собственные задачи и расширять функционал.