Как исключить из RSS посты определенных форматов

Как исключить из RSS посты определенных форматов | n-wp.ru

Использование форматов постов является отличным способом для задания различного оформления. Однако не всегда отправка постов всех форматов в RSS является оправданным: некоторые блоггеры исключают короткие заметки, цитаты или статусы из фида. Я уже описывал способ исключения постов определенных категорий из RSS, давайте теперь посмотрим, как из RSS исключить посты определенных форматов.

Как исключить из RSS посты определенных форматов

Для исключения из RSS постов определенного формата добавьте в файл functions.php используемой вами темы следующий код:

if ( $wp_query->is_feed() ) { 
	$post_formats_to_exclude = array( 
        'post-format-ФОРМАТ' 
    ); 
	$extra_tax_query = array( 
	    'taxonomy' => 'post_format', 
	    'field' => 'slug', 
	    'terms' => $post_formats_to_exclude, 
	    'operator' => 'NOT IN' 
	);  
	$tax_query = $wp_query->get( 'tax_query' ); 
	if ( is_array( $tax_query ) ) { 
	    $tax_query = $tax_query + $extra_tax_query; 
	} else { 
	    $tax_query = array( $extra_tax_query ); 
	} 
	    $wp_query->set( 'tax_query', $tax_query ); 
	} 
} 
add_action( 'pre_get_posts', 'exclude_post_formats_from_feeds' );

В этом коде ФОРМАТ – это текстовый ярлык формата поста (aside/gallery/link/image/quote/status/video/audio/chat). Подробнее о форматах постов: Форматы постов и вывод на главной странице постов определенного формата.

Если нужно исключить из RSS посты нескольких форматов, то используйте этот код:

if ( $wp_query->is_feed() ) { 
	$post_formats_to_exclude = array( 
        'post-format-ФОРМАТ',
        'post-format-ФОРМАТ',
        'post-format-ФОРМАТ' 
    ); 
	$extra_tax_query = array( 
	    'taxonomy' => 'post_format', 
	    'field' => 'slug', 
	    'terms' => $post_formats_to_exclude, 
	    'operator' => 'NOT IN' 
	);  
	$tax_query = $wp_query->get( 'tax_query' ); 
	if ( is_array( $tax_query ) ) { 
	    $tax_query = $tax_query + $extra_tax_query; 
	} else { 
	    $tax_query = array( $extra_tax_query ); 
	} 
	    $wp_query->set( 'tax_query', $tax_query ); 
	} 
} 
add_action( 'pre_get_posts', 'exclude_post_formats_from_feeds' );

Например, код для исключения из RSS постов форматов статус (status), цитата (quote), ссылка (link) и заметка (aside), выглядит так:

if ( $wp_query->is_feed() ) { 
	$post_formats_to_exclude = array( 
        'post-format-status',
        'post-format-quote',
        'post-format-link', 
        'post-format-aside' 
    ); 
	$extra_tax_query = array( 
	    'taxonomy' => 'post_format', 
	    'field' => 'slug', 
	    'terms' => $post_formats_to_exclude, 
	    'operator' => 'NOT IN' 
	);  
	$tax_query = $wp_query->get( 'tax_query' ); 
	if ( is_array( $tax_query ) ) { 
	    $tax_query = $tax_query + $extra_tax_query; 
	} else { 
	    $tax_query = array( $extra_tax_query ); 
	} 
	    $wp_query->set( 'tax_query', $tax_query ); 
	} 
} 
add_action( 'pre_get_posts', 'exclude_post_formats_from_feeds' );
Автор tiaurus 2182 Articles
Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*