Я недавно создал Telegram канал в который я планирую размещать записи из моего блога. Для того чтобы сэкономить время на публикации записей в Telegram, я написал скрипт для автоматического размещения новых записей в Telegram.
В новой записи я хочу с вами поделиться знаниями в написание хуков для WordPress и показать как настроить автопостинг записей в социальные сети.
Скрипт для автопостинга очень прост! Для удобства я создал дополнительное текстовое поле для записи, чтобы в него можно было записывать текст для анонса. Поле я создавал с помощью плагина «Advanced Custom Fields«
Далее вам необходимо создать бота для Telegram и Telegram канал в который вы будете публиковать записи.
Как создать бота написано здесь — https://prog-time.ru/forma-obratnoj-svyazi-s-otpravkoj-pisma-v-soobshhenie-v-telegram/
Скрипт для автопостинга записей в Telegram
/* ============================== */
/* ДЛЯ ОТПРАВКИ ЗАПРОСОВ В TELEGRAM */
/* ============================== */
function parserTelegram($method, $arrData){
/*токен который выдаётся при регистрации бота */
$token = "5263524584:AAF0EU_h6XcvmVOYyLLfqVuurvb6woJ1uE0";
$ch = curl_init("https://api.telegram.org/bot{$token}/{$method}");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($arrData, '', '&'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$html = curl_exec($ch);
curl_close($ch);
return $html;
}
/* ============================== */
/* ============================== */
/* ============================== */
/* АВТОПОСТИНГ ЗАПИСЕЙ НА КАНАЛ TELEGRAM */
/* ============================== */
function sendPostIn_Telegram($link, $title, $image, $textPost, $idPost) {
$statusPost = get_post_status($idPost);
if($statusPost === "publish") {
$textMessage = "<b>".$title."</b> \n";
$textMessage .= "Ссылка на запись - ".$link."\n\n";
$textMessage .= $textPost;
$arrQuery = [
"chat_id" => "@prog_time",
"parse_mode" => "html",
];
if($image) {
$arrQuery["caption"] = $textMessage;
$arrQuery["photo"] = $image;
$method = "sendPhoto";
}
else {
$arrQuery["text"] = $textMessage;
$method = "sendMessage";
}
parserTelegram($method, $arrQuery);
}
}
/* ============================== */
/* ============================== */
/* ============================== */
/* ХУК ДЛЯ АВТОПОСТИНГА ЗАПИСЕЙ*/
/* ============================== */
function autopostingSocial($post) {
$imageUrl = str_replace("https://prog-time.ru", $_SERVER["DOCUMENT_ROOT"], get_the_post_thumbnail_url($post));
/*постинг записей в Telegram */
sendPostIn_Telegram(get_permalink($post), get_the_title($post), get_the_post_thumbnail_url($post), get_field("preview_text", $post), $post);
}
add_action('draft_to_publish', 'autopostingSocial', 10, 2);
/* ============================== */
/* ============================== */