Меняем адрес фида в WordPress 2.7.1
Зарегистрировался в FeedBurner, решил, так скажем, сжечь свой фид (feed).
И столкнулся с одной проблемкой — смена адреса фида как в мета-тегах блога, так и в прочих ссылках, используемых по умолчанию. В настройках такое не предусмотрено — это меня удивило.
Первым делом полез в редактор тем, нашел шаблон header.php, и что же я там увидел?
<link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />
адрес получаем от некоторой функции bloginfo. Да, можно тупо изменить этот код, убрав включение php-кода, но что если это используется и в других местах? Вручную менять везде?
Полезем глубже и увидим что в функции bloginfo выполняется некая другая, которой передается тот же параметр rss2_url и ответ возвращается, и так по цепочке. Копать код всё глубже и глубже — да Вы шутите! Я таки нашел правильное решение, и вот каким образом.
Первым делом я полез в гугл и нашел уйму способов, в основном это химия с htaccess или нечто посредственное, не трогающее сути. Да, оно работало, но какой же порядок, когда одно наезжает на другое, предусмотренное ранее?
Открыл я все файлы из архива с WordPress 2.7.1 через Notepad++, замечательная программа.
Поиск — Поиск…
Что искать: rss2_url и жмём искать всё в активных документах.
Внизу появляется список и мы его усердно копаем;)
А теперь раскрою карты)
1) Открываем wp-includes/general-template.php через Notepad++ (удобно искать номер строки, который я назову + сохраним в utf-8 без BOM).
2) Ищем строку 269 (для WordPress 2.7.1) и видим следующее:
case 'rdf_url': $output = get_feed_link('rdf'); break; case 'rss_url': $output = get_feed_link('rss'); break; case 'rss2_url': $output = get_feed_link('rss2'); break; case 'atom_url': $output = get_feed_link('atom'); break; case 'comments_atom_url': $output = get_feed_link('comments_atom'); break; case 'comments_rss2_url': $output = get_feed_link('comments_rss2'); break;
Нас интересует только этот участок кода.
3) Недолго думая, сделаем так, чтобы при всех этих вариантах возвращался наш адрес (для меня это http://feeds2.feedburner.com/parsers):
case 'rdf_url': case 'rss_url': case 'rss2_url': case 'atom_url': case 'comments_atom_url': case 'comments_rss2_url': $output = 'http://feeds2.feedburner.com/parsers'; break;
4) Готово! Обновляем файл и наслаждаемся)
PS Как в кино — нужно копаться в коде, что-то менять, а в результате такой потрясающий результат :) Кино новинки 2010 — наверняка что-то похожее найдётся.
Тоже нашел несколько решений проблемы с адресом фида, но этот способ показался наилучшим, правда после обновления версии WP, приходится повторять процедуру.
Я заюзал плагин «FeedBurner FeedSmith». В настройках ему нужно указать ссылки на Ваш фид и он автоматом будет редиректить юзверя на них. Очень удобно, имхо.
я сторонник ручного редактирования :)
Лучше ручное редактирования фида, а плагин это лишняя нагрузка на сарвак ИМХО
Мне тоже кажется плагин, лишняя нагрузка и тормаза — постоянные
а в таком случае с подпиской на комментарии все нормально будет?
нет) но можно оставить старый адрес на комментарии