Задержка публикации в RSS-ленте WordPress

Чтобы избежать неприятностей при публикации постов в WordPress, связанных с ошибками в статье, достаточно отложить генерацию RSS-ленты на некоторое время, за которое вы сможете внести нужные исправления.

Добавим через фильтр post_where необходимую задержку, чтобы сделать отложенную публикацию поста в RSS:

/**
 * Отложенная публикация постов в RSS-ленте WordPress
 *
 * @param $where - оригинальный запрос
 *
 * @return string
 */
function roomble_feed_delay( $where ) {
	global $wpdb;

	if ( is_feed() ) {

		// текущее время
		$now = gmdate('Y-m-d H:i:s');

		// сколько ждать
		$wait = 10; // число

		// единица измерения задержки
		// MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
		$device = MINUTE;

		// добавить условие в запрос
		$where .= " AND TIMESTAMPDIFF( {$device}, {$wpdb->posts}.post_date_gmt, '{$now}') > {$wait} ";
	}
	return $where;
}
add_filter( 'posts_where', 'roomble_feed_delay' );

Источник: https://www.kobzarev.com/programming/zaderzhka-publikatsii-v-rss-lente-wordpress/

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

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все. Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса. Ведет блог о разработке, дайджест в телеграмме и в ВК. Любит сиськи, баню и радиоэлектронику. 100% патриот (но это не точно). Тролль 542 уровня. Ездит в отпуск раз в 5 лет.

Добавить комментарий

%d такие блоггеры, как: