Не удается заставить мой сайт WordPress обновлять свой собственный канал? - PullRequest
0 голосов
/ 05 мая 2011

Я использую следующий код для отображения некоторых записей моего блога WordPress в качестве канала на боковой панели.Проблема в том, что он не обновляется независимо от того, что я делаю.Он по-прежнему показывает только первое сообщение «Hello World», хотя я добавил другие, и даже не отображает обновленное имя этого сообщения после его изменения.Возможно, это проблема с кешированием, но если я на самом деле нажму на фид XML, данные обновятся, что для меня не имеет смысла ??

    <?php
    // Blog Feed:
    $rss_url = get_option('home')."/feed/";
    ?>

    <ul class="side-feed">

    <?php if(function_exists('fetch_feed')) {

        include_once(ABSPATH . WPINC . '/feed.php');               // include the required file

        $feed = fetch_feed($rss_url); // specify the source feed

        $limit = $feed->get_item_quantity(3); // specify number of items
        $items = $feed->get_items(0, $limit); // create an array of items
echo count($items);
    }
    if ($limit == 0) echo '<div>(None)</div>';
    else foreach ($items as $item) : ?>

        <li><a href="<?php echo $item->get_permalink(); ?>"><?php echo $item->get_title(); ?></a></li>

    <?php endforeach; ?>

    </ul>

1 Ответ

3 голосов
/ 05 мая 2011

Wordpress кэширует каналы по умолчанию на 12 часов, чтобы изменить это, вам нужно подключиться к фильтру wp_feed_cache_transient_lifetime и вернуть количество секунд, которое вы хотите кэшировать.

add_filter('wp_feed_cache_transient_lifetime', create_function('', 'return 60*60;'));
...