wordpress-code
Время для прочтения: 0 мин. 37 сек.

Задержка публикации в 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' );

Для вставки кода используйте HTML-теги
<pre><code class="php">ваш код</code></pre>

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

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.