Настройка автопостинга записей в Telegram. Автопубликация записей WordPress — PROG-TIME

Настройка автопостинга записей в Telegram. Автопубликация записей WordPress

19.05.2022
Содержание:

Я недавно создал 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);

/* ============================== */
/* ============================== */