如何从其他网站获取rss feed月份

时间:2011-09-28 15:46:06

标签: wordpress rss feeds

我对RSS Feed有疑问。我在我的网站上使用wordpress ver 3.2.1并使用其他网站rss feed。我的要求是每月提取Feed并在我的网站侧栏显示。

目前我正在使用rss小部件并在侧边栏中显示供稿,但它们的格式如下:

  1. Thu 9-29 4:30 pm小学探索 - 家长信息之夜
  2. 星期四10-6 - 所有日 - 半日:小学会议
  3. 我将非常感谢你的帮助。提前谢谢。

    更新: 2012年3月13日

    此代码存在于index.php

    <h2><?php _e('Recent news from Some-Other Blog:'); ?></h2>
    <?php // Get RSS Feed(s)
    include_once(ABSPATH . WPINC . '/feed.php');
    
    // Get a SimplePie feed object from the specified feed source.
    //$rss = fetch_feed('http://example.com/rss/feed/goes/here');
    
    $rss = fetch_feed('http://lakewashington.intand.com/index.php?type=export&action=rss&schools=48&groups=884,876,874,996');
    
    print_r($rss);
    
    if (!is_wp_error( $rss ) ) : // Checks that the object is created correctly 
        // Figure out how many total items there are, but limit it to 5. 
        $maxitems = $rss->get_item_quantity(5); 
    
        // Build an array of all the items, starting with element 0 (first element).
        $rss_items = $rss->get_items(0, $maxitems); 
    endif;
    ?>
    
    <ul>
        <?php if ($maxitems == 0) echo '<li>No items.</li>';
        else
        // Loop through each feed item and display each item as a hyperlink.
        foreach ( $rss_items as $item ) : ?>
        <li>
            <a href='<?php echo esc_url( $item->get_permalink() ); ?>'
            title='<?php echo 'Posted '.$item->get_date('j F Y | g:i a'); ?>'>
            <?php echo esc_html( $item->get_title() ); ?></a>
        </li>
        <?php endforeach; ?>
    </ul>
    

1 个答案:

答案 0 :(得分:1)

您可以手动执行此操作。 只需使用wordpress本机函数fetch_feed

你甚至有一个例子:

<h2><?php _e('Recent news from Some-Other Blog:'); ?></h2>
<?php // Get RSS Feed(s)
include_once(ABSPATH . WPINC . '/feed.php');

// Get a SimplePie feed object from the specified feed source.
$rss = fetch_feed('http://example.com/rss/feed/goes/here');
if (!is_wp_error( $rss ) ) : // Checks that the object is created correctly 
    // Figure out how many total items there are, but limit it to 5. 
    $maxitems = $rss->get_item_quantity(5); 

    // Build an array of all the items, starting with element 0 (first element).
    $rss_items = $rss->get_items(0, $maxitems); 
endif;
?>

<ul>
    <?php if ($maxitems == 0) echo '<li>No items.</li>';
    else
    // Loop through each feed item and display each item as a hyperlink.
    foreach ( $rss_items as $item ) : ?>
    <li>
        <a href='<?php echo esc_url( $item->get_permalink() ); ?>'
        title='<?php echo 'Posted '.$item->get_date('j F Y | g:i a'); ?>'>
        <?php echo esc_html( $item->get_title() ); ?></a>
    </li>
    <?php endforeach; ?>
</ul>

您只需将它放在sidebar.php中,无论您需要在哪里显示Feed。

编辑专栏:

$rss = fetch_feed('http://example.com/rss/feed/goes/here');

...并将网址指向正确的Feed。 和

$maxitems = $rss->get_item_quantity(5); 

...指定要显示的项目数(示例中为5个)

然后检查UL内部的 foreach ,您可以设置Feed的显示方式。

默认情况下,fetch_feed函数会将Feed缓存12小时。 如果您需要每30天进行一次,您可以使用wordpress&#39; s Transients API来轻松完成。