Как программно удалить функцию из RSS-канала WordPress? - PullRequest
0 голосов
/ 24 августа 2009

Я пытаюсь удалить функцию the_guid(), которая появляется в feed-rss2.php. Я пробовал remove_action('rss2_item', 'the_guid') или remove_filter, но ничего не происходит. Я также пробовал разные крючки, такие как the_content_rss ...

Функция появляется в строке 43 feed-rss2.php , заключенная в <item></item>.

Обновление

С echo current_filter() я обнаружил, что крюк - do_feed_rss2. Но я все еще не могу удалить функцию.

Ответы [ 3 ]

1 голос
/ 24 августа 2009

Вы можете переопределить вывод этой функции через фильтр.

add_filter('get_the_guid','my_get_the_guid');
function my_get_the_guid($guid) {
    $my_guid = 'foo';
    return $my_guid;
}

Используя это, вы можете переопределить вывод GUID на что угодно. Вы не можете удалить узел в выводе RSS, но вы можете контролировать его содержимое. Если вы хотите полностью удалить узел, вы можете создать свой собственный шаблон XML, сохранить его в своей теме, а затем использовать действие template_redirect для принудительной загрузки шаблона вместо значения по умолчанию.

Надеюсь, это поможет!

1 голос
/ 27 августа 2009

Плагин Feed Wrangler отлично подходит для настройки каналов:

http://wordpress.org/extend/plugins/feed-wrangler/

По сути, установите плагин, обозначьте ленту слагом (например: no-guid ), затем добавьте файл feed-no-guid.php в вашу тему. Вы можете использовать файлы каналов по умолчанию в wp-includes/ в качестве базы и удалять или добавлять любые элементы, которые вы хотите. Таким образом, вы получите полный контроль над фидом и четкий путь обновления в будущем.

0 голосов
/ 24 августа 2009

Похоже на строку 40 в /wp-includes/feed-rss2.php:

<guid isPermaLink="false"><?php the_guid(); ?></guid>

Попробуйте удалить это и посмотрите, что произойдет; это единственная ссылка на the_guid в файле

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...