Верх страницы
Обложка к записи Хук публикации поста в WordPress
Время для прочтения: 0 мин. 5 сек.

Хук публикации поста в WordPress

Одна из самых сильных сторон WordPress — это система хуков (фильтров и экшенов), которая позволяет добавлять свои колбеки на разные события, произошедшие в ядре системы.

Довольно распространенная практика — оповещение подписчиков по email или push о выходе нового поста.

Для этого большинство программистов используют хук publish_post, что является неверным решением задачи, так как это событие всплывается также при нажатии кнопки Обновить на экране редактирования поста.

Тем самым ваши уведомления уйдут пользователю столько раз, сколько вы отредактируете свой пост после публикации.

Покопавшись более детально в документации по WordPress и поспрошая на форумах пришел к тому, что нужно использовать хук изменения статуса поста transition_post_status:

/**
 * Отправка уведомлений при публикации поста
 */
function roomble_send_notification( $new_status, $old_status, $post ) {
	if(
		'publish' === $new_status && 
		'publish' !== $old_status && 
		'post' === $post->post_type
	) {
		// Тут код отправки уведомления, например
	}
}
add_action( 'transition_post_status', 'roomble_send_notification', 10, 3 );

Событие transition_post_status возникает, когда пост переходит из одного статуса в другой. Внутри функции-зацепа мы проверяем, что тип поста post, запись переходит в состояние publish (опубликована) и предыдущий статус не был publish, иначе это свидетельствовало бы о том, что мы редактируем пост.

Источник: WordPress Publish Post Hook

Автор: Кобзарёв Михаил

Русский разработчик с 20-ти летним стажем. Работаю с PHP, ООП, JavaScript, Git, WordPress, Битрикс, Joomla, Drupal, OpenCart, DLE, Laravel, Moonshine, Symfony, SuiteCRM.

Оптимизирую сайты под Google Page Speed, настраиваю импорты для больших магазинов на WooCommerce + WP All Import. Пишу плагины на заказ. Все мои услуги.

Веду блог о разработке, дайджест в телеграмме и в ВК.

Вы всегда можете нанять меня.

Комментарии
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Предыдущая запись
Следующая запись

Давайте дружить
в Telegram

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, Joomla, Opencart, Laravel, Moonshine, фильмы и сериалы