фильтр the_permalink_rss не работает - PullRequest
1 голос
/ 16 сентября 2011

RSS-канал annuncistar.it недействителен, так как символ «&» не разрешен в RSS-каналах. Чтобы решить эту проблему, я добавил фильтр WordPress в мой файл functions.php.

function mp_permalink($permalink) {
$url = str_replace("&", "&", $permalink);
return $url;
}

add_filter('the_permalink_rss', 'mp_permalink');

К сожалению, эта функция не работает. В чем может быть причина?

1 Ответ

2 голосов
/ 17 сентября 2011

Кажется, что к URL вашего фида добавлены переменные отслеживания Google Analytics (utm_source и т. Д.).Обычно URL-адрес канала WordPress выглядит так же просто (как в качестве примера):

http://gothick.org.uk/feed

Однако с отслеживающими переменными Analytics он выглядит примерно так:

http://gothick.org.uk/?utm_source=source&utm_medium=medium&utm_term=term&utm_content=content&utm_campaign=campaign

Итак, я предполагаю, что у вас установлен плагин, который изменяет URL вашего канала для добавления этих переменных.К сожалению, когда он встраивается в ваш RSS-канал в качестве источника, амперсанды в URL не экранируются - я предполагаю, что это ошибка в плагине.

Я предполагаю, что вашфильтр не запускается после плагин меняет исходный канал.Будь то потому, что он запускается раньше в цепочке фильтров или потому что модуль аналитики нацеливается на URL канала на другом уровне, я не уверен.

В любом случае, решение будет отключить модуль аналитикиили, по крайней мере, бит, который изменяет URL-адрес канала, или обновите его до версии, которая правильно экранирует URL-адрес для использования в XML-канале RSS.

...