J'ai un réseau multisite sur WP 3.3.1. Je dois maintenant obtenir tous les messages populaires de ce réseau (de préférence en fonction du nombre de vues).
Est-ce possible et comment puis-je le faire?
liste simple tous les dernier message sur le réseau, pas les messages populaires; pour les publications populaires, vous devez utiliser un plugin ou un suivi via Google Analytics, etc.
<ul class='postlist no-mp'>
<?php
$blogs = $wpdb->get_results(
"SELECT blog_id,path FROM {$wpdb->blogs}
WHERE blog_id != {$wpdb->blogid}
AND site_id = '{$wpdb->siteid}'
AND spam = '0'
AND deleted = '0'
AND archived = '0'
order by blog_id", ARRAY_A
);
if ( 0 < count( $blogs ) ) :
foreach( $blogs as $blog ) :
switch_to_blog( $blog[ 'blog_id' ] );
if ( get_theme_mod( 'show_in_home', 'on' ) !== 'on' ) {
continue;
}
$description = get_bloginfo( 'description' );
$blog_details = get_blog_details( $blog[ 'blog_id' ] );
?>
<li class="no-mp">
<h2 class="no-mp blog_title">
<a href="<?php echo $blog_details->path ?>">
<?php echo $blog_details->blogname; ?>
</a>
</h2>
<div class="blog_description">
<?php echo $description; ?>
</div>
<?php
query_posts( 'showposts=5' );
if ( have_posts() ) :
while( have_posts() ) :
the_post();
?>
<div class="blog_post">
<div class="post_title">
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</div>
<div class="post_excerpt">
<?php the_excerpt(); ?>
</div>
</div>
<?php endwhile; ?>
<?php endif;
restore_current_blog();
?>
</li>
<?php endforeach;?>
</ul>
Vous pouvez essayer d’utiliser les techniques décrites ici: http://www.artiss.co.uk/2011/07/using-google-analytics-data-to-show-popular-posts
Il utilise essentiellement les fonctions fournies par le plugin Google Analytics Dashboard pour afficher le message le plus populaire de votre thème.