Stai cercando un modo per tracciare le visualizzazioni dei post senza un plugin utilizzando i metadati dei post? Sebbene probabilmente esista un plugin per questo, abbiamo creato un rapido snippet di codice che puoi utilizzare per tracciare le visualizzazioni dei post senza un plugin utilizzando i metadati dei post in WordPress.
Istruzioni:
Aggiungi questo codice al file functions.php del tuo tema o in un plugin specifico per il sito:
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 View";
}
return $count.' Views';
}
function setPostViews($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);
}
}
// Remove issues with prefetching adding extra views
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
Facoltativamente, aggiungi anche questo codice a una colonna nell'area di amministrazione di WordPress che visualizza le visualizzazioni dei post:
// Add to a column in WP-Admin
add_filter('manage_posts_columns', 'posts_column_views');
add_action('manage_posts_custom_column', 'posts_custom_column_views',5,2);
function posts_column_views($defaults){
$defaults['post_views'] = __('Views');
return $defaults;
}
function posts_custom_column_views($column_name, $id){
if($column_name === 'post_views'){
echo getPostViews(get_the_ID());
}
}
Questa parte del codice di tracciamento delle visualizzazioni imposterà le visualizzazioni dei post. Posiziona semplicemente questo codice di seguito all'interno del file single.php all'interno del Loop di WordPress.
<?php
setPostViews(get_the_ID());
?>
Nota sulla cache dei frammenti: Se stai utilizzando un plugin di caching come W3 Total Cache, il metodo sopra per impostare le visualizzazioni non funzionerà poiché la funzione setPostViews() non verrebbe mai eseguita. Tuttavia, W3 Total Cache ha una funzionalità chiamata fragment caching. Invece di quanto sopra, usa quanto segue in modo che setPostViews() venga eseguito correttamente e tracci tutte le tue visualizzazioni dei post anche quando hai la cache abilitata.
<!-- mfunc setPostViews(get_the_ID()); --><!-- /mfunc -->
Il codice seguente è facoltativo. Usa questo codice se desideri visualizzare il numero di visualizzazioni all'interno dei tuoi post. Posiziona questo codice all'interno del Loop.
<?php
echo getPostViews(get_the_ID());
?>
Nota: Se questa è la prima volta che aggiungi snippet di codice in WordPress, consulta la nostra guida su come copiare / incollare correttamente snippet di codice in WordPress, in modo da non rompere accidentalmente il tuo sito.
Se ti è piaciuto questo snippet di codice, prendi in considerazione la possibilità di consultare i nostri altri articoli sul sito come: 10 migliori plugin per testimonianze di WordPress e come impostare il tracciamento dell'autore in WordPress con Google Analytics.
Ciao, cerco una query per rimuovere i post senza visualizzazioni, qualche idea? grazie 🙂
Kevin, grazie per questo bel snippet.
Come funzionerà questo per un sito con un volume di traffico molto elevato? Stavo esaminando un plugin per le visualizzazioni dei post molto popolare (non ricordo il nome ora), e questa era una preoccupazione menzionata nei commenti.
Funziona bene con le nuove versioni di WP. Assicurati che le cose siano impostate correttamente.
Ciao, c'è un modo per resettare il contatore a zero visualizzazioni?
Ciao Cyndy, tutto è salvato come metadati, quindi puoi semplicemente andare nel post e cambiare il valore da quello che è a zero.
Kevin, grazie
il tuo tutorial molto utile!!
Ciao Cyndy, Ciao Kevin.
Codice fantastico.
Non riesco a trovare il punto esatto in cui questi metadati sono memorizzati per ogni post per cambiarli.
All'interno del post (da Dashboard->Post->Modifica) c'è solo il contenuto del post, nessun metadato.
Grazie.
Ciao Kevin!
Uso il tuo snippet da un po' di tempo e sono contento, ma nelle ultime settimane è successo qualcosa e ha smesso di contare tutte le visualizzazioni. Lo so perché vedo 500 visualizzazioni da Google Analytics, eppure lo snippet ne mostra solo 18? Sto usando il codice esatto che hai presentato qui, senza modifiche. Ho solo cambiato un conteggio il mese scorso e da allora tutto ha smesso di funzionare.
Normalmente questo accadrebbe perché hai installato un nuovo plugin o qualcosa di simile. Ho testato questo snippet su nuove versioni di WordPress e dovrebbe funzionare bene. Hai per caso un plugin di cache in esecuzione sul tuo sito, come w3 total cache?
Ho installato w3. Come influisce sullo snippet? Ha funzionato fino ad ora con esso affiancato, perché sta causando problemi ora? Ho pulito la cache molte volte e ancora niente. Ufffff!
poiché non chiamerebbe la funzione setPost poiché le cose sono memorizzate nella cache, inviami un'email utilizzando il modulo di contatto e ti invierò una versione aggiornata che risolverà il problema.
puoi condividerlo qui?
C'è un modo per resettare il conteggio delle visualizzazioni ogni giorno per mostrare solo il numero di visualizzazioni del giorno corrente?
Ciao Pere,
Sì assolutamente, ma dovresti cambiare una buona parte del codice per ottenerlo. Purtroppo non è solo una modifica semplice,
È esattamente quello che sto cercando. C'è un posto dove posso ottenere queste informazioni?
Devo implementare una pagina di sezione di tendenza per un mio cliente e al momento sono un po' bloccato con questo. Sembra che non riesca a trovare alcuna informazione al riguardo sul web.
Qualsiasi aiuto sarebbe molto apprezzato!
Ciao Pere, hai scoperto qualcosa al riguardo?
C'è un modo per far registrare solo visualizzazioni uniche? Premere ripetutamente F5 sulla tastiera sta aumentando i numeri.
Ciao Mark,
Sì, ma non facilmente con questo snippet. Potresti fare un controllo dei cookie, o tracciare gli indirizzi IP per visualizzazioni uniche migliori ma non perfette. O addirittura richiedere agli utenti di essere loggati e tracciare su base utente per utente.
$count = 0; in setPostViews() alla riga #15 dovrebbe essere rimosso, in realtà non fa nulla 😉
Senza dubbio lo snippet più veloce da implementare
Lo sto usando per diversi metodi di notifica frontend, ottimo lavoro
Sei un grande!
grazie per questo tutorial
Dove viene memorizzato il conteggio? È in un database?
Volevo sapere se è possibile modificare i valori.
Funziona bene per me sull'ultima versione di WordPress, grazie.
per me conta il doppio...
Ciao Andrew, probabilmente è il prefetching, o il setViews viene aggiunto più di una volta. Per risolvere il problema prova ad aggiungere questo. Nota il codice sopra.
// Rimuove i problemi con il prefetching che aggiunge visualizzazioni extra
remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);
Ciao, sembra che questo smetta di funzionare in WP 4.0. Qualcuno può confermare o fornire una soluzione? Grazie!
Hai saputo qualcosa a riguardo? Ho appena aggiornato alla 4.0 e vorrei usarlo.
Stessa cosa qui.
Sto usando la 4.0 e non ho problemi :)
Wow. Questo mi ha fatto risparmiare tempo. Molto bravo, grazie.
Ottimo snippet ma continua a incrementare per ogni post.
Ciao!
Scusa per il mio inglese, sto usando un traduttore. Vengo dal Brasile.
Ho un sito che ha già diverse visualizzazioni sui post, come faccio a non perdere queste visualizzazioni? Devo aggiornare il database? Uso questo plugin: WP-PostViews
Potresti aiutarmi a stilizzare l'output di echo? Voglio inserire il conteggio delle visualizzazioni nel mio loop e ci sono riuscito perfettamente, ma come aggiungo un CSS all'output per il testo? Qualche idea al riguardo. Grazie
Ciao Randy, puoi fare quanto segue aggiungendo un div attorno alla funzione php. Ho aggiunto un esempio su pastebin
http://pastebin.com/ThLasSJB
Ho provato ora e non funziona.
Ho provato ora e non funziona.
Ho provato ora e non funziona.
Ho provato ora e non funziona.
Ho provato ora e non funziona.
Ho provato ora e non funziona.
Ciao Randy,
lo snippet visualizza il numero di visualizzazioni? in tal caso ha a che fare con il tuo CSS o HTML poiché copiare quello snippet e inserirlo nel tuo loop di post singolo dovrebbe funzionare bene. Devi solo definire alcuni stili da applicare.
Potresti aiutarmi a stilizzare l'output di echo? Voglio inserire il conteggio delle visualizzazioni nel mio loop e ci sono riuscito perfettamente, ma come aggiungo un CSS all'output per il testo? Qualche idea al riguardo. Grazie
Potresti aiutarmi a stilizzare l'output di echo? Voglio inserire il conteggio delle visualizzazioni nel mio loop e ci sono riuscito perfettamente, ma come aggiungo un CSS all'output per il testo? Qualche idea al riguardo. Grazie
Potresti aiutarmi a stilizzare l'output di echo? Voglio inserire il conteggio delle visualizzazioni nel mio loop e ci sono riuscito perfettamente, ma come aggiungo un CSS all'output per il testo? Qualche idea al riguardo. Grazie
Potresti aiutarmi a stilizzare l'output di echo? Voglio inserire il conteggio delle visualizzazioni nel mio loop e ci sono riuscito perfettamente, ma come aggiungo un CSS all'output per il testo? Qualche idea al riguardo. Grazie
Potresti aiutarmi a stilizzare l'output di echo? Voglio inserire il conteggio delle visualizzazioni nel mio loop e ci sono riuscito perfettamente, ma come aggiungo un CSS all'output per il testo? Qualche idea al riguardo. Grazie
Potresti aiutarmi a stilizzare l'output di echo? Voglio inserire il conteggio delle visualizzazioni nel mio loop e ci sono riuscito perfettamente, ma come aggiungo un CSS all'output per il testo? Qualche idea al riguardo. Grazie
Potresti aiutarmi a stilizzare l'output di echo? Voglio inserire il conteggio delle visualizzazioni nel mio loop e ci sono riuscito perfettamente, ma come aggiungo un CSS all'output per il testo? Qualche idea al riguardo. Grazie