function mostrar_ultimas_entradas_multisite() {
// Intenta obtener el resultado del cache (transient)
$output = get_transient('ultimas_entradas_multisite_cache');
// Si el cache no existe, generar el contenido
if (false === $output) {
// Obtener la lista de sitios
$blogs = get_sites();
// Matriz para almacenar todas las entradas
$all_posts = array();
// Iterar a través de cada sitio
foreach ($blogs as $blog) {
// Cambiar al blog
switch_to_blog($blog->blog_id);
// Realizar una consulta para obtener las últimas entradas
$args = array(
'post_type' => 'post',
'posts_per_page' => 5, // Cambia este número para mostrar más o menos entradas
);
$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
$all_posts[] = array(
'title' => get_the_title(),
'permalink' => get_the_permalink(),
'date' => get_the_date('U'), // U para obtener en formato Unix timestamp
'blog_name' => get_bloginfo('name'),
);
}
}
// Restaurar el blog original
restore_current_blog();
}
// Ordenar todas las entradas por fecha
usort($all_posts, function($a, $b) {
return $b['date'] - $a['date'];
});
// Iniciar el output
$output = '<div class="ultimas-entradas-multisite">';
// Generar el output para las entradas ordenadas
foreach ($all_posts as $post) {
$output .= '<a href="' . $post['permalink'] . '">' . $post['title'] . '</a> (' . $post['blog_name'] . ')<br>';
}
// Cerrar el output
$output .= '</div>';
// Almacenar el resultado en el cache (transient) durante 1 hora
set_transient('ultimas_entradas_multisite_cache', $output, HOUR_IN_SECONDS);
}
// Mostrar el output
echo $output;
}