Site icon Tosolini.info

WordPress: conteggio visite senza plugin

Certamente per contare le visite di un post oggi ci sono moltissimi strumenti, Google Analytics e lo stesso WordPress Stats attraverso il plugin Jetpack. Però questi strumenti oltre ad essere esterni al nostro blog, sono più focalizzati ad un andamento generale del sito, sebbene poi si possa andare nel dettaglio a trovare il numero di visualizzazioni che un determinato post ha ottenuto.

Quello che realizzeremo oggi è collezionare il numero di visite relative ad un articolo senza utilizzare nessun plugin. Sarà sufficiente aggiungere qualche funzione al nostro tema grafico. Pertanto le aggiunte che andremo ad effettuare saranno quelle di copiare all’interno del file functions.php, o nel relativo file di funzioni personalizzate nel caso il vostro tema lo preveda, il codice sottostante. Inoltre sarà da aggiungere una piccola riga all’interno del file single.php, come vedremo spiegato più avanti.

Di seguito la porzione di codice completa

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";
	}
	return $count;
}

function setPostViews($postID) {
	$count_key = '_post_views_count';
	$count = get_post_meta($postID, $count_key, true);
	if($count==''){
		$count = 1;
		delete_post_meta($postID, $count_key);
		add_post_meta($postID, $count_key, '1');
	}else{
		$count++;
		update_post_meta($postID, $count_key, $count);
	}
}

// Aggiunge colonne lato admin
function add_views_column( $columns ) {
	$columns['_post_views_count'] = '<span class="dashicons dashicons-visibility"></span>';
	return $columns;
}
add_filter( 'manage_posts_columns' , 'add_views_column' );

function views_custom_columns( $column, $post_id ) {
	if ($column == '_post_views_count') {
		echo getPostViews(get_the_ID());
	}
}
add_action('manage_posts_custom_column' , 'views_custom_columns', 10, 2 );

La prima parte getPostViews è preposta alla visualizzazione dei dati all’interno del database. Infatti verrà aggiunta per ogni post la tabella “_post_views_count” con allegato l’ID dell’articolo e il contatore. Se la tabella è vuota o il contatore non è stato compilato si presume che sia a zero.

La seconda parte setPostViews è quella operativa, infatti per ogni articolo caricato dagli utenti il codice andrà ad incrementare il contatore relativo all’ID articolo di “_post_views_count“. Nel caso il contatore sia vuoto significa che quella è la visita numero 1. Per poter operare l’esecuzione di questo codice sarà necessario aggiungere il richiamo alla funzione nel file single.php, prima della chiusura di PHP come di seguito evidenziato:

setPostViews(get_the_ID());

La funzione add_views_column serve solo ad aggiungere una colonna e la sua intestazione. In questo caso abbiamo aggiunto una icona esplicativa.

La funzione views_custom_columns mostrerà il numero di visite che ha ricevuto quello specifico post solo nel caso venga trovato il postmeta “_post_views_count“; questo per evitare di vederci restituito un errore o un NULL.

Una volta completate le operazioni sotto la voce “Tutti gli articoli” vi ritroverete accanto ad ognuno di essi una nuova colonna con l’icona di un occhio con un valore numerico. Sono il numero di visite ricevute da quello specifico post dal momento in cui avete installato questo piccolo codice. Nel caso cambiate tema sarà sufficiente ricordarsi di ricopiare il codice sotto functions e sotto single.php.

Exit mobile version