Cómo habilitar miniaturas en el widget de RSS del panel de control
Estoy usando exitosamente fetch_feed() para mostrar un feed RSS dentro de un widget del panel de control. Sin embargo, no puedo cargar la imagen miniatura de los elementos del feed. Estoy intentando hacerlo con el método get_image_url(), pero WordPress marca ese método como indefinido.
El código es el siguiente...
function example_dashboard_widget_function() {
// Mostrar lo que quieras mostrar
$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>Error RSS</strong>: %s'), $rss->get_error_message());
echo '</p>';
}
return;
}
if ( !$rss->get_item_quantity() ) {
echo '<p>¡No hay elementos RSS para mostrar!</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);
}

Es un método para algo completamente diferente.
RSS 2.0, Atom 1.0 y los feeds con etiquetas RSS de iTunes pueden tener un "logo del feed", que es una única imagen que representa el feed. Este método devuelve la URL anotada para ese archivo de imagen/logo.
get_image_url()
Y se queja de que no está definido porque es un método del objeto feed y estás iterando a través de objetos de elementos del feed.
En general, depende de cómo tu feed trabaje con las imágenes. Si simplemente están incluidas en el contenido - extraelas desde ahí (con regex o algo más simple si no hay mucho texto). Si las imágenes están incluidas en el media enclosure, prueba con el método get_enclosures()
.
