Un compteur de visite pour une page

Un compteur de visite pour une page

Habituellement on cherche à comptabiliser ses articles. Mais on peut avoir construit son site sur un système de page, du coup il peut être intéressant de comptabiliser le nombre de vues sur ses pages aussi. On va voir qu’on peut utiliser le même code que pour compter les articles, mais simplement placer le code d’appel de la fonction dans une page, et créer une colonne dans le back office des pages.

Compter le nombre de vues

Voici le bout de code pour compter le nombre de vues sur les pages, il ‘agit de la même fonction que pour comptabiliser le nombre de vues sur les articles . A insérer dans le fichier functions.php :

<?php

// fonction pour afficher le nombre d'articles
function getPageViews($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 View";
}
return $count.' Views';
}

// fonction pour compter les vues
function setPageViews($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);
}
}

?>

La fonction pour compter les vues dans les pages

Pour que cela fonctionne, on doit placer notre « compteur » ou fonction de comptabilisation dans la page dont on veut compter le nombre de visite,on peut placer le code juste avant l’appel au footer (get_footer();).

<?php setPageViews(get_the_ID()); ?>

A chaque rechargement de la page concernée, le nombre de visite s’auto incrémentera.

Afficher le nombre de vues par page.

Si vous souhaitez afficher le résultat quelque part sur votre site, il suffit de placer le bout de code suivant à l’endroit souhaité :

<?php echo getPageViews(get_the_ID());?>

Créer une colonne de vues dans le panneau d’administration

Enfin, pour améliorer le tout, si l’on veut juste afficher le nombre de vue pour l’administrateur, on peut également créer une nouvelle colonne et le nombre de vue par page.


add_filter( 'manage_pages_columns', 'pages_column_views' );
add_action( 'manage_pages_custom_column', 'pages_custom_column_views', 5, 2 );
function pages_column_views( $defaults ) {
$defaults['page_views'] = __('Views');
return $defaults;
}
function pages_custom_column_views( $column_name, $id ){
if ( $column_name === 'page_views' ) {
echo wps_get_page_views( get_the_ID() );
}
}