is_feed()WP 1.5.0

Проверяет запрашивается ли в текущий момент фид.

Хуков нет.

Возвращает

true|false.

Использование

if( is_feed( $feeds ) ){
	...
}
$feeds(строка)
Тип фида, который нужно проверить.

Примеры

0

#1 Изменение запроса для фидов

Предположим у нас есть произвольное поле skip_rss_flag, в него мы указываем значение true, если нужно исключить пост из RSS ленты.

Тогда используя условный тег is_feed(), мы можем изменить запрос для фидов. Для этого вставим нижеследующий код в файл темы functions.php и укажем посту, который нужно исключить из RSS, произвольное поле skip_rss_flag со значением true (или любое другое значение):

add_filter('posts_where', 'skip_post_from_rss');
function skip_post_from_rss($where){
	// Выходим если это не фид.
	if( ! is_feed() )
		return $where;

	global $wpdb;

	$where .= " AND $wpdb->posts.ID NOT IN ( 
						SELECT distinct(post_id) from $wpdb->postmeta 
						where $wpdb->postmeta.meta_key = 'skip_rss_flag'
						) ";

	return $where;
}

Код из плагина skip-rss.

Заметки

  • Global. WP_Query. $wp_query WordPress Query object.

Список изменений

С версии 1.5.0 Введена.

Код is_feed() WP 6.4.3

function is_feed( $feeds = '' ) {
	global $wp_query;

	if ( ! isset( $wp_query ) ) {
		_doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1.0' );
		return false;
	}

	return $wp_query->is_feed( $feeds );
}