ダッシュボードウィジェット内にRSSフィードを表示するためにfetch_feed()を使用しました。ただし、フィード内のアイテムからサムネイル画像を読み込むことができません。私は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);
}
それは全く違うことのための方法です。
RSS 2.0、Atom 1.0、およびiTunesのRSSタグ付きフィードには、フィードを表す単一の画像である「フィードロゴ」を付けることができます。このメソッドは、その画像/ロゴファイルの表記されたURLを返します。
get_image_url()
それはフィードオブジェクトのメソッドであり、フィード項目オブジェクトを繰り返し処理しているため、undefinedについて不平を言います。
全体的には、フィードが画像とどのように連携するかによって異なります。それらが単にコンテンツに含まれている場合 - そこからそれらを採掘してください(正規表現、またはテキストがそれほど多くない場合はもっと単純なものを使用して)。画像がメディアエンクロージャに含まれている場合はget_enclosures()
メソッドを試してください。