is_feed()
Проверяет запрашивается ли в текущий момент фид.
Хуков нет.
Возвращает
true|false.
Использование
if( is_feed( $feeds ) ){
...
}
- $feeds(строка)
- Тип фида, который нужно проверить.
Примеры
#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_queryWordPress Query object.
Список изменений
| С версии 1.5.0 | Введена. |
Код is_feed() is feed WP 7.0
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 );
}