Добавление форматов постов в ленту RSS

Добавление форматов постов в ленту RSS | n-wp.ru
Добавление в RSS информации о разных форматах постов.
👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

Добавление форматов постов в ленту RSS

В WordPress давно уже и с успехом используется система форматов постов, призванная упростить оформление записей с разным медийным содержимым. Однако если подписаться на RSS блога, то обнаружится, что все посты идут с одинаковым оформлением, и не понятно, какой у них формат. Более того, передача контента в RSS оставляет желать лучшего, так как в WordPress до сих пор нет нормального функционала, способного корректно передавать видео, галереи изображений, вставленные в посты аудио файлы, и все это оформлять подобающим образом.

Универсальным методом формирования содержимого RSS сейчас является отправка цитаты поста или контента до тега more, ограниченного рамками упрощенной HTML-разметки, которая не всегда отвечает требованиям для передами мультимедийного контента. Поэтому посты формата видео трудно отличить от постов стандартного формата, а если в них только видео и ничего больше, то подписчик и вовсе может ничего не увидеть, получив в ленте RSS пустое сообщение. Чтобы исправить эту ситуацию, можно добавить к содержимому RSS информацию, поясняющую, запись какого формата получил подписчик, и что нужно сделать, чтобы увидеть мультимедийное содержимое записи.

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

function featured_image_in_feed( $content ) {
	global $post;
	if( is_feed() ) {
		if( has_post_thumbnail( $post->ID ) ){
			$output = get_the_post_thumbnail( $post->ID, 'large', array( 'style' => 'margin: 0 0 20px 0;' ) );
			$content = $output . $content;
		}
		if( has_post_format( 'gallery' ) ) {
			$output = '<p>Этот пост содержит галерею изображений. <a>ID ) . '">Посмотреть галерею</a> на сайте.</p>';
			$content = $output . $content;
		}
		if( has_post_format( 'video' ) ) {
			$output = '<p>Этот пост содержит видео. <a>ID ) . '">Посмотреть видео</a> на сайте.</p>';
			$content = $output . $content;
		}
		if( has_post_format( 'audio' ) ) {
			$output = '<p>Этот пост содержит аудио. <a>ID ) . '">Послушать аудио</a> на сайте.</p>';
			$content = $output . $content;
		}
	}
	return $content;
}
add_filter( 'the_content', 'featured_image_in_feed' );

Теперь если формат поста видео, аудио или галерея, то под содержимым записи в RSS будет появляться соответствующая подпись со ссылкой на пост, приглашающей к просмотру или прослушиванию. Это более информативнее, нежели чем получение пустой записи.

Создай свой первый сайт на WordPress

tiaurus

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

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