scottb
  • 0
Гуру

Как включить миниатюры в виджете RSS-панели

  • 0

Я успешно использую fetch_feed() для отображения RSS-канала внутри виджета панели инструментов. Однако я не могу загрузить миниатюру из элементов в ленте. Я пытаюсь сделать это с помощью метода get_image_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);

} 
Share
  1. Это метод для совершенно другой вещи.

    RSS 2.0, Atom 1.0 и каналы с RSS-тегами iTunes могут иметь «логотип канала», который представляет собой одно изображение для представления канала. Этот метод возвращает обозначенный URL-адрес для этого файла изображения/логотипа.get_image_url()

    И он жалуется на undefined, потому что это метод объекта фида, и вы перебираете объекты элементов фида.

    В целом это зависит от того, как ваша лента работает с изображениями. Если они просто включены в контент — копайте их оттуда (с регулярным выражением или чем-то попроще, если не много текста). Если изображения включены в медиа-вложение, попробуйте get_enclosures() метод.

    • 0

Оставить ответ

You must login to add an answer.