J'utilise ce bout de code pour obtenir un flux RSS sur mon tableau de bord en tant que widget. Cela devient problématique lorsqu'il affiche 5 à 6 flux RSS différents, ce qui me fait sombrer dans la profondeur.
Comment puis-je ajouter 6 flux différents dans un seul widget de tableau de bord avec barre de défilement?
Merci
add_action('wp_dashboard_setup', 'my_dashboard_widgets');
function my_dashboard_widgets() {
global $wp_meta_boxes;
// remove unnecessary widgets
// var_dump( $wp_meta_boxes['dashboard'] ); // use to get all the widget IDs
unset(
$wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins'],
$wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary'],
$wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']
);
// add a custom dashboard widget
wp_add_dashboard_widget( 'dashboard_custom_feed', 'Latest News', 'dashboard_custom_feed_output' ); //add new RSS feed output
}
function dashboard_custom_feed_output() {
echo '<div class="rss-widget">';
wp_widget_rss_output(array(
'url' => 'http://www.nytimes.com/feed', //put your feed URL here
'items' => 4, //how many posts to show
'show_summary' => 1
));
echo "</div>";
}
Oui, @toscho a raison, la url
fonctionne avec un tableau d'adresses de flux. Et si vous avez 5/6 flux, le total des éléments doit être 20/24.
Pour une séparation claire, je pense qu'il est préférable d'exécuter la wp_widget_rss_output
fonction n
nombre de fois, et de préparer un tableau précédent avec les titres et les adresses et de le parcourir. Le problème de défilement est juste une question de CSS.
add_action( 'wp_dashboard_setup', 'multiple_feeds_wpse_91027' );
function multiple_feeds_wpse_91027()
{
wp_add_dashboard_widget(
'dashboard_custom_feed',
'Latest News',
'dashboard_feed_output_wpse_91027'
);
}
function dashboard_feed_output_wpse_91027()
{
// Array with Title => Address
$feeds = array(
'First Feed' => 'http://example.com/feed',
'Second Feed' => 'http://example2.com/rss',
'Third Feed' => 'http://example3.com/feed/',
);
// Set max-height and enable scrolling
echo '<div style="max-height:300px;overflow-y:auto">';
foreach( $feeds as $key => $value )
{
echo "<h3>$key</h3>";
wp_widget_rss_output(array(
'url' => $value,
'items' => 4,
'show_summary' => 1
));
}
echo "</div>";
}
Vous pouvez définir une taille maximale pour votre widget à l'aide de CSS, puis lui ajouter une barre de défilement si vous le souhaitez. C'est un peu une façon dépassée de faire les choses, et ça peut paraître un peu "désagréable".
Non testé, mais cela devrait faire le travail -
div.rss-widget{
max-height: 300px;
overflow: scroll;
overflow-x: hidden;
}