Если вы думаете, как разместить RSS-ленту в любом месте сайта, и вы используете WordPress – вы будете рады услышать об этом способе. Да, есть WordPress RSS widget... но что если возможности показа ленты в сайдбаре вам недостаточно?
Это руководство покажет вам, как взять RSS-ленту и разместить ее в любом месте вашей темы, в том числе в странице или шаблоне поста.
Это отличное решение для вас, если вы используете генераторы RSS-лент (пока, ненужная информация в футере ленты) или плагины (привет, более быстрый сайт)!
Код
Начнем с показа кода, а дальше проанализируем его пошагово. Это код, который нужно будет вставить в шаблон вашей темы там, где вы хотите показывать ленту. Например, вы можете вставить его в специфический шаблон страницы для отдельной, оформленной RSS-ленты.
Код: часть 1
<?php if(function_exists('fetch_feed')) { include_once(ABSPATH . WPINC . '/feed.php'); // the file to rss feed generator $feed = fetch_feed('http://www.brettthompsonracing.com/feed/'); // specify the rss feed $limit = $feed->get_item_quantity(7); // specify number of items $items = $feed->get_items(0, $limit); // create an array of items } if ($limit == 0) echo '<div>The feed is either empty or unavailable.</div>'; else foreach ($items as $item) : ?> // The actual output <h1><a href="<?php echo $item->get_permalink(); ?>" alt="<?php echo $item->get_title(); ?>"><!--?php echo $item--->get_title(); ?></a></h1> <p><?php echo $item->get_date('j F Y @ g:i a'); ?></p> <p><?php echo substr($item->get_description(), 0, 200); ?> ...</p> <?php endforeach; ?>
Анализ : часть 1
Идея состоит в том, чтобы сначала найти генератор ленты
include_once(ABSPATH . WPINC . ‘/feed.php’);
который должен быть в правильном месте для того, чтобы код работал.
Затем вы добавляете RSS-ленту
$feed = fetch_feed(‘http://www.brettthompsonracing.com/feed/’);
которую вы хотите показывать на вашем сайте. Для некоторых лент нужен символ / в конце. Учтите, что могут работать не все RSS-ленты; если такое произойдет, вы всегда можете превратить ленту в FeedBurner RSS.
Строка
$limit = $feed->get_item_quantity(7);
определит, сколько постов вы хотите показывать. Поставьте в скобках вместо «7» то количество постов, которое вам нужно.
Если постов нет, появится сообщение об ошибке "The feed is either empty or unavailable". Текст этого сообщения вы можете сменить по своему желанию. Если вы получаете это сообщение, то скорее всего, код работает.
Вы можете определить, какие данные из ленты выводить. Выбранные вами данные для показа будут выводиться для всех постов (если у вас несколько лент). Иконок, как видите, в списке доступных параметров нет.
- get_title(); ?> = Заголовок поста.
- get_date(‘j F Y @ g:i a’); ?> = Дата. Если вы хотите показывать дату в другом виде - вам сюда.
- get_permalink(); ?> = Ссылка на пост.
- get_description(), 0, 200); ?> = Отрывок или описание, вместо числа «200» поставьте то количество символов, которое вы хотите отображать.
Часть 2
По умолчанию ваша RSS-лента будет обновляться каждые 12 часов. Если вы используете приведенный ниже код, лента будет проверяться каждые 30 минут. Код нужно вставить в functions.php или файл custom_functions.php темы:
add_filter( 'wp_feed_cache_transient_lifetime', create_function('$rssfix', 'return 1800;') );
Анализ кода: часть 2
add_filter — это вызов функции WordPress, который позволяет «подключиться» к ядру WordPress и «зацепить» свою функцию для выполнения во время определенных операций.
Так называемой зацепкой (или хуком, от английского «hook») в данном случае является wp_feed_cache_transient_lifetime. Он обрабатывает обновление ленты.
Затем идет функция create_function(‘$rssfix’, ‘return 1800;’), которая устанавливает нужный интервал для более частой проверки ленты. Приведенный код устанавливает 30-минутный интервал. Если вы хотите установить другое время, замените 1800 на нужное вам. 600=10 минут, 1200=20 минут, 1800=30минут.
$rssfix можно заменить на любой текст, главное – не забыть $ в начале.
Вот так вот. Используйте эту идею в вашем php-виджете, теме, посте или шаблоне страницы. Как упоминалось в начале поста, вы можете вставить код в специфический шаблон страницы для отдельной, оформленной RSS-ленты.
Комментарии к записи: 3
Добро! Сейчас попробую.
Попробовал?
Попробовал?
Мы сгораем от нетрепения!