如何在RSS仪表板小部件中启用缩略图

时间:2010-10-11 作者:Scott B

我成功地使用fetch\\u feed()在仪表板小部件中显示RSS提要。但是,我无法从提要中的项目加载缩略图。我正试图用get\\u image\\u url()方法来实现这一点,但是,WordPress将该方法错误为未定义的方法。

代码如下。。。

function example_dashboard_widget_function() {
    // Display whatever it is you want to show   
    $rss = fetch_feed( "http://localhost/testsite/wp-content/test.rss" );

     if ( is_wp_error($rss) ) {
          if ( is_admin() || current_user_can(\'manage_options\') ) {
               echo \'<p>\';
               printf(__(\'<strong>RSS Error</strong>: %s\'), $rss->get_error_message());
               echo \'</p>\';
          }
     return;
}

if ( !$rss->get_item_quantity() ) {
     echo \'<p>No RSS items to show!</p>\';
     $rss->__destruct();
     unset($rss);
     return;
}

echo "<ul>\\n";

if ( !isset($items) )
     $items = 10;

     foreach ( $rss->get_items(0, $items) as $item ) {
          $publisher = \'\';
          $site_link = \'\';
          $link = \'\';
          $content = \'\';
          $date = \'\';
          $image = \'\';

          $image = $item->get_image_url();
//        $image = esc_url( strip_tags( $item->get_thumbnail() ) );

          $link = esc_url( strip_tags( $item->get_link() ) );

          $content = $item->get_content();
          $content = wp_html_excerpt($content, 250) . \' ...\';

         echo "<li><img src=\'$image\' /><a href=\'$link\'>$link</a> - $content</li>\\n";
}

echo "</ul>\\n";
$rss->__destruct();
unset($rss);

} 

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

这是一种完全不同的方法。

RSS 2.0、Atom 1.0和带有iTunes RSS标签的订阅源允许有一个“订阅源徽标”,这是一个表示订阅源的单个图像。此方法返回该图像/徽标文件的标记URL。get_image_url()

它抱怨未定义,因为它是feed对象的方法,您正在遍历feed项对象。

总的来说,这取决于feed如何处理图像。如果它们只是包含在内容中,那么从那里挖掘它们(使用regex或一些简单的东西,如果没有太多的文本)。如果媒体机柜中包含图像,请尝试get_enclosures() 方法

结束