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

Как исключить из RSS посты определенных форматов | n-wp.ru Настройки
Пример кода, исключающего из RSS посты определенных форматов. Можно исключать из фида как посты одного, так и нескольких форматов.
👍 Научим создавать сайты на WordPress бесплатно за 19 уроков. Подробнее →

Использование форматов постов является отличным способом для задания различного оформления. Однако не всегда отправка постов всех форматов в 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' );
Создай свой первый сайт на WordPress

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

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