Nous allons voir comment ajouter un widget pour afficher les articles récents avec un compteur de visite dans le tableau de bord de WordPress de votre thème. Se widget recueillera le nombre de visite sur vos articles récents vous pourrez personnaliser le nombre d’articles à afficher ainsi qu’une catégorie précise si vous le désirez.
Le code ci-dessous est à insérer dans le fichier function.php de votre thème il va afficher le widget dans le tableau de bord :
// déclaration et affichage du widget sur le tableau de bord function wps_recent_posts_count() { ?> <ol> <?php global $post; $args = array( 'cat' => 0, 'order' => 'DESC', 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => 0, 'caller_get_posts'=> 1 ); $myposts = get_posts( $args ); foreach( $myposts as $post ) : setup_postdata($post); ?> <li><?php echo'Dans la catégorie';?> : <strong><?php the_category(' '); ?></strong> - <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php printf(the_title()); ?>"><?php the_title(); ?> </a> | <?php echo '<em>' ; ?><?php echo getPostViews (get_the_ID ());?> <?php echo 'Lecture(s)' ; ?><?php echo '</em>' ; ?></li> <?php endforeach; ?> </ol> <?php } function add_wps_recent_posts_count() { wp_add_dashboard_widget( 'wps_recent_posts_count', __( 'Articles récents avec compteur de visite' ), 'wps_recent_posts_count' ); } add_action('wp_dashboard_setup', 'add_wps_recent_posts_count' ); // fin affichage widget
Vous pouvez remplacer lecture(s) par visite(s) ou un autre texte de votre choix. Pour changer la catégorie indiquer son ID numérique exemple : ‘cat’ => 5 laissé sur 0 pour afficher toutes les catégories.
Pour changer le nombre d’articles à afficher changer la valeur de ‘posts_per_page’ => 5 par exemple laissé sur 0 pour afficher tous les articles.
Le deuxième code ci-dessous va servir à comptabiliser le nombre de visite, a insérer dans le fichier function.php de votre thème :
// fonction compteur de visite function getPostViews($postID){ $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); return "0"; } echo '<strong>' ; echo $count ; echo '</strong>' ; } function setRecentViews($postID) { $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ $count = 0; delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); }else{ $count++; update_post_meta($postID, $count_key, $count); } } // fin compteur
Maintenant insérer la ligne suivante dans votre fichier single.php dans la boucle, se bout de code permettra de récupéré le nombre de visite sur chaque articles.
<?php setRecentViews (get_the_ID ());?>
Si vous désirez affichez le nombre de visite a vos lecteurs il suffi d’ajouter le code suivant toujours dans la boucle :
<p><?php echo getPostViews (get_the_ID ());?> <?php echo 'visite(s)'; ?></p>
Vous avez aussi la possibilité de créer plusieurs boucles dans le widget pour afficher des articles de plusieurs catégories différente.