Хакі rss 10 способів змінити стрічку фида в wordpress

RSS-стрічка сайту (фид сайту) дає можливість користувачам стежити за появою нових матеріалів на вашому блозі. Для цього користувачі підписуються на ваш блог через будь-якої обробник RSS і отримують нові матеріали з вашого блогу в своїй RSS-стрічці. Іноді для зручності або з інших причин, потрібно змінити висновок постів в ФІДЕ. Наприклад, додати в стрічку записи довільних типів, додати картинки до постів і т.д.

У цій статті я приведу приклади, що демонструють як змінювати висновок фідів в WordPress. Всі наведені нижче хукі слід розміщувати в файл теми functions.php або створювати з них окремий плагін. Код плагіна буде виглядати так:

Включення довільних типів записів в RSS-стрічку

Припустимо, за допомогою register_post_type (). ми створили новий тип запису book і хотіли б, щоб записи цього типу, на рівні з постами (post), потрапляли в RSS-стрічку. Зробити це можна так:

Якщо, потрібно включити ще й постійні сторінки (page), то додайте "page" в масив: array ( 'post', 'book', 'page').

Додавання мініатюри поста в RSS-стрічку

Підключимося до хуку the_excerpt_rss. який спрацьовує для короткого опису посади в ФІДЕ і додамо в нього мініатюру поста:

Для отримання мініатюри використовується функція get_the_post_thumbnail (). у другому аргументі якої зазначений розмір отримуваної картинки (100х80), а в третьому - атрибут тега - align = "left". Деякі обробники RSS-стрічок вирізують вбудовані CSS правила (style = ''), тому краще використовувати align = "left". коли потрібно розташувати картинку ліворуч.

Зазначений розмір (100x80), не справжній, це не копія оригіналу картинки з потрібними нам розмірами: підбирається найбільш підходяща за розміром картинка і візуально зменшується під зазначені розміри. Іноді краще створити спеціальний формат картинок-мініатюр для RSS-стрічок. Для цього вам потрібно буде зареєструвати новий формат мініатюр для вашої теми, так:

В цьому випадку, при первинному завантаженні будь-якого зображення в WordPress, буде створюватися пропорційно-зменшена копія оригіналу картинки. У підсумку, в фідах будуть виводиться картинки з реальними розмірами.

Після добавки такого коду в functions.php або плагін, мініатюру можна отримати із зазначенням розміру feed:

Якщо потрібно змінити виведений контент, а не короткий опис, то використовуйте хук the_content_rss.

Як буде виглядати RSS-стрічка в результаті, залежить від програми, що зчитує фид. Так, в різних браузерах стрічка виглядає по-різному. Тому перевіряйте як виглядає фид в кожному конкретному випадку і не намагайтеся зробити з висновком щось занадто нестандартне.

Виняток з фида постів з міткою

Якщо потрібно, щоб в RSS-стрічку не потрапляли пости мають, припустимо, мітку ID якої дорівнює 451, то використовуйте такий код:

Якщо потрібно виключити пости мають будь-яку із зазначених міток, то вкажіть ID всіх міток в масиві:

Виняток рубрик з RSS-стрічки

Щоб виключити непотрібні рубрики з фида, нехай це будуть рубрики з ID 6 і 4, використовуйте такий код:

Виняток дерева рубрики з RSS-стрічки

Якщо потрібно виключити пости з рубрики і всіх її підрубрик, ми можемо використовувати попередній приклад і вказати ID рубрики і всіх підрубрик вручну. Однак це не зручно адже, якщо ми додамо в цю рубрику нову підрубрику, нам доведеться додавати ID цієї продрубрікі в код, інакше пости з неї потраплять в стрічку, а нам цього не треба.

Щоб виключити пости з рубрики і автоматично з усіх її підрубрик, використовуйте наступний код, де потрібно вказати тільки ID батьківської рубрики, а ID всіх підрубрик будуть отримані автоматично:

Виняток з фида постів мають довільно поле

Припустимо, нам потрібно виключити з RSS-стрічки випадкові пости: не залежать від мітки, рубрики чи інший таксономії. Тоді, ми може додавати до таких постів, довільне поле exclude_from_feed з будь-яким значенням (нехай 1) і використовувати код, який виключить з RSS-стрічки всі пости мають довільне поле exclude_from_feed:

Висновок в стрічці постів тільки із зазначених рубрик

У випадках, коли потрібно вивести в фіде пости тільки з однієї рубрики можна використовувати такий код:

Для виведення постів з декількох рубрик, вкажіть їх назви (складаючи) через кому:

Також можна вказати ID рубрик, через кому:

Додаємо посилання на джерело в кінець кожного поста в RSS-стрічці

У деяких випадках вказувати посилання на сайт краще текстом, тому що HTML теги можна вирізувати обработчиками RSS-стрічок і якщо вказати посилання з анкором, користувач може побачити тільки анкор посилання, без самої посилання.

Пов'язані з матюками записи в кінці кожного поста в RSS-стрічці

Розвиваючи думку додаткового контенту до постів в RSS-стрічці, можна наприклад, в кінець кожного поста додати посилання на записи з однаковими тегами. Тобто, скажімо, біля посту є мітка "життя" в стрічці в кінець цього поста будуть додані інші пости з міткою "життя":

Регулюємо кількість записів виводяться в RSS-стрічці

Зазвичай кількість записів, що відображаються в RSS-стрічці можна встановити в настройках: Параметри> Читання> В RSS-стрічках відображати останні. Однак, якщо вам потрібно змінити кількість записів через плагін або в будь-яких інших випадках, коли не підходить стандартне зміна в настройках, то використовуйте такий код:

Тут, ми використовували фільтр post_limits. який дозволяє потрапити в SQL запит і змінити кількість одержуваних рядків запиту (LIMIT 7), в нашому випадку, кількість записів.

Затримка перед публікацією записи в RSS фід

Хукі, використані в прикладах:

the_excerpt_rss - фільтрує контент короткого опису переданого в фид;

the_content_feed - фільтрує контент поста після того, як він отриманий з бази даних і оброблений фільтром the_content;

  • post_limits - змінює LIMIT частина SQL запиту перед тим, як отримати пости з бази даних.
  • Плагін кешування може впливати на перевірку миттєвих змін. Припустимо ви видалив плагін через якого проблеми, перевірили, а проблема залишилася бо кеш. І висновок - цей плагін не винен, хоча він винен. Тільки так може впливати плагін кешування. Крім того, RSS кешируєтся в самому WordPress, поетом після кожної зміни бажано якось переконатися що RSS віддається свіжий.

    Вам потрібно знайти проблему. ПО замовчуванням в WordPress все нормально з RSS - це факт! Звідси: спробуйте тимчасово змінити тему, на будь-яку, і перевірте висновок RSS. Якщо знову також, то винен плагін. Вимикайте плагіни по одному. Якщо нічого не допомагає, але загляньте в папку wp-contents / mu-plugins (її може не бути), там теж можуть розташовуватися плагіни.

    В останню чергу, зайдіть в phpMyAdmin і зробіть пошук в таблиці wp_options по полю option_name шукайте% rss%:

    Можливо у вас RSS лежить в кеші бази даних. Таке буває, в яких випадках точно я не знаю, але пам'ятаю зустрічався з таким.

    Загалом, знайдіть проблемне місце, потім пишіть, я допоможу вирішити її, якщо самі не зможете. За вас проблему ніхто шукати не буде, ну або майже ніхто, для цього потрібні доступи і вільний час і бажання помоч, ну або оплата за роботу.

    Удачі в пошуках!

    Схожі статті