Перенаправлення вбудованих в WordPress RSS каналів на стрічку Feedburner
При реєстрації в feedburner, сервіс з легкістю визначає які RSS канали використовуються на реєстроване сайті. Але як він це робить?
І RSS Atom, що живе тут:
Питання в тому, навіщо мені стандартні RSS канали, якщо я завів стрічку feedburner? Виходить, що в feedburner я зареєструвався, а вихідному коді у мене як і раніше знаходиться посилання на RSS 2.0 і RSS Atom.
Непорядок! Треба цю справу поправити. Поїхали!
Позбавляємося від стандартних RSS в WordPress
Відкриваємо файл header.php і шукаємо щось схоже на такі рядки:
У тих, хто скорочував кількість запитів до БД по моїй статті, позбавляючись від функції bloginfo (). дані рядки повинні виглядати так:
Звичайно, з урахуванням Вашого домену.
Що нам треба зробити? Нам треба замість посилань на вбудовані в WordPress RSS канали поставити посилання на стрічку feedburner. Код повинен виглядати так:
Видаляємо два рядки вставляємо одну. Сподіваюся зрозуміло.
Ну добре, посилання з вихідного коду ми прибрали, але самі RSS канали-то залишилися. Давайте розберемося і з цією проблемою, але перш мені доведеться відхилитися від основної теми статті і познайомити Вас з функцією add_action ().
Функція add_action ().
Функція add _action () є реєстратором хуков, таких як wp_head (). про яку я детально розповідав в недавній статті та багатьох інших.
Але саме поняття «Реєстрація» не дає чіткого уявлення про те, що відбуватиметься в глибині свідомості WordPress, при активації функції add _action ().
Розглянемо такий приклад. Припустимо я зробив новий фавікон для свого блогу. Тепер мені треба вивести посилання на місце розташування картинки в header, щоб пошуковики знайшли зображення фавікона і прийняли його в «оборот».
Можна звичайно безпосередньо прописати посилання в файлі header.php між тегами
, але для прикладу я зроблю це за допомогою простенької хук-функції:Сама по собі така функція працювати не буде, так як WordPress не зрозуміє, де повинна виводитися дана рядок: в підвалі, в сайдбарі або якому іншому місці. Одним словом функції не зареєстрована і WordPress про неї нічого невідомо.
Тому я дописую до функції ще одну сходинку:
Тим самим я реєструю написане мною дію і змінюю роботу функції wp_head (). додаючи нову посилання в header. Як «обробника» або «приймальника» реєстрації хука виступає інша функція - do_action (). але про це іншим разом. Підписуйтесь на оновлення блогу і неодмінно дізнаєтеся багато цікавого.
add _action () використовують різні плагіни, підключаючи я ядру WordPress свій функціонал. Наприклад плагін All in One SEO Pack.
Отже, з функцією add _action () ми трохи розібралися, саме час повернуться до основної теми статті.
Перенаправлення вбудованих в WordPress RSS каналів на стрічку feedburner
Саме слово «Перенаправлення» має на увазі редирект. У мережі повно інформації про те, як перенаправити RSS потоки, за допомогою додавання коду в файл .htaccess. Цей код виглядає так:
Хочу сказати інше. На своєму кулінарному сайті я побував використовувати перенаправлення через .htaccess і незабаром відмовився від цього варіанту, так як стрічка feedburner постійно ламалася.
В ході вивчення PHP я натрапив на хук template_redirect. який розробники WordPress передбачили для випадків, коли треба підключити інший шаблон для певної сторінки сайту.
Як виявилося можна скористатися даними хуком для перенаправлення RSS потоків WordPress на feedburner.
Для цього в файл funtions.php треба вставити наступний код:
Давайте я трохи поясню, що це за функція.
2. По-другому рядку, за допомогою функції preg_match (), влаштовується перевірка, чи є дана сторінка фідом, а також збирається інформація про тип і версії браузера та операційної системи відвідувача, що по-моєму, крім усього, допомагає відсівати спамерських пошукових роботів.
4. Нарешті в четвертому рядку, за допомогою функції add_action () реєструємо нову дію і чіпляємо його до хуку template_redirect.
Привіт Олександра! Я подивився ваш фід і у Вас там відображається 6 заголовків останніх статей. Напевно просто оновився фид, оновлення відбувається раз на добу. Ще питання?
Спасибі за відповідь! Правда, я дивилася свій фід через Підписка Яндекс пошти, саме там виводиться 20 статей, якщо стоїть прапорець на «розгорнути усе». Напевно, це в налаштуваннях самої пошти 🙁
Віталій, підкажіть, будь ласка! щось з rss стрічкою сталося. Перестала оновлюватися. мойсайт.ru / feeв - вбудована стрічка оновлюється, а feeds.feedburner.com/мойсайт.ru - перестала. Не розумію, що сталося ...