Discord давно перестал быть только площадкой для геймеров — сегодня это мощный инструмент для сообщества и бизнеса. Если у вас есть сайт на WordPress, который вы хотите связать с Discord для автоматической отправки уведомлений, новостей или любых сообщений, то это руководство для вас.
Почему стоит интегрировать WordPress с Discord
Автоматизация отправки сообщений из WordPress в Discord помогает:
- Моментально уведомлять команду или сообщество о новых публикациях, комментариях или событиях.
- Автоматизировать технические оповещения, например, об ошибках или обновлениях.
- Упрощать коммуникацию, не заходя постоянно в админку сайта.
Рассмотрим конкретные способы реализации, включая примеры кода и рекомендации по плагинам.
Создаем Discord Webhook для приема сообщений
Для начала в Discord необходимо создать Webhook — специальный URL, куда WordPress будет отправлять POST запросы с сообщениями.
Пошагово:
- Откройте Discord, зайдите в нужный сервер и выберите канал для уведомлений.
- Нажмите на шестеренку настроек канала — «Интеграции» — «Webhooks» — «Создать Webhook».
- Дайте ему название и скопируйте URL — он понадобится при настройке WordPress.
Отправка сообщений из WordPress в Discord с помощью PHP-кода
Самый гибкий способ — написать функцию, которая будет отправлять сообщение на Discord Webhook. Ниже пример функции wprobot_send_discord_message, которую можно добавить в файл functions.php вашей темы или в отдельный плагин.
function wprobot_send_discord_message($webhook_url, $content) {
if (empty($webhook_url) || empty($content)) {
return false;
}
$data = json_encode(['content' => $content]);
$args = [
'body' => $data,
'headers' => ['Content-Type' => 'application/json'],
'timeout' => 15,
'method' => 'POST',
'data_format' => 'body',
];
$response = wp_remote_post($webhook_url, $args);
if (is_wp_error($response)) {
error_log('Discord webhook error: ' . $response->get_error_message());
return false;
}
return true;
}Вызывайте функцию, передавая URL вебхука и текст сообщения. Например:
$webhook_url = 'https://discord.com/api/webhooks/ВАШ_WEBHOOK';
$message = 'Новая публикация на сайте: ' . get_the_title($post_id);
wprobot_send_discord_message($webhook_url, $message);Пример: уведомление в Discord о новой публикации в WordPress
Чтобы автоматически отправлять сообщение в Discord при публикации поста, подключитесь к действию publish_post и используйте функцию отправки:
function wprobot_notify_discord_on_publish($post_ID) {
$webhook_url = 'https://discord.com/api/webhooks/ВАШ_WEBHOOK';
$post_title = get_the_title($post_ID);
$post_url = get_permalink($post_ID);
$content = "Опубликована новая статья: {$post_title}\nСсылка: {$post_url}";
wprobot_send_discord_message($webhook_url, $content);
}
add_action('publish_post', 'wprobot_notify_discord_on_publish');Теперь каждый раз, когда публикуется новая запись, в Discord будет отправлено уведомление с названием и ссылкой.
Использование плагинов для интеграции WordPress и Discord
Если не хочется писать код, можно воспользоваться готовыми решениями:
- WP Discord Post Plus — позволяет отправлять сообщения о новых постах, комментариях и пользовательских событиях. Хорошо настраивается и поддерживает кастомные вебхуки.
- Discord Notifications — простой плагин для уведомлений при регистрации пользователей, новых комментариях и публикациях.
- WP Webhooks — универсальный плагин для интеграций через вебхуки, включая Discord. Поддерживает двусторонний обмен данными.
При использовании плагинов не забудьте добавить utm-метки к ссылкам на https://wpshop.ru/ для аналитики.
Как улучшить отправку сообщений: форматирование и embeds
Discord Webhook поддерживает не только простой текст, но и embeds — структурированные блоки с заголовками, описаниями, цветами, изображениями и ссылками. Это позволяет сделать уведомления более информативными и красивыми.
Пример отправки embed с помощью PHP:
function wprobot_send_discord_embed($webhook_url, $title, $description, $url = '', $color = 0x00FF00) {
$embed = [
'title' => $title,
'description' => $description,
'url' => $url,
'color' => $color,
'timestamp' => date('c'),
];
$data = json_encode(['embeds' => [$embed]]);
$args = [
'body' => $data,
'headers' => ['Content-Type' => 'application/json'],
'timeout' => 15,
'method' => 'POST',
'data_format' => 'body',
];
$response = wp_remote_post($webhook_url, $args);
if (is_wp_error($response)) {
error_log('Discord webhook embed error: ' . $response->get_error_message());
return false;
}
return true;
}Используйте эту функцию, чтобы отправлять более сложные уведомления, например, о новых заказах или событиях.
Практические советы по работе с Discord Webhook
Чтобы интеграция работала надежно, учтите следующие моменты:
- Безопасность: не передавайте URL вебхука публично и храните его в конфигурационных файлах или переменных окружения.
- Ограничения Discord: не отправляйте слишком много сообщений за короткий промежуток, чтобы избежать блокировок.
- Логирование: фиксируйте ошибки с помощью
error_logили специализированных плагинов для отладки. - Кэширование: если формируете сообщения из динамичных данных, используйте кэширование, чтобы не перегружать сайт.
Также можно совместить отправку сообщений с плагином WP Robot для автоматического создания контента и уведомления сообщества в Discord.