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,
Posso fare un conteggio di visualizzazioni false + conteggio reale?
Significa che posso impostare manualmente il valore iniziale (perché voglio che il mio nuovo post pubblicato mostri un valore come 3.429 visualizzazioni nel primo minuto) in modo che il mio post sembri avere un alto numero di visualizzazioni dei post, ovviamente, combinato anche con il conteggio reale.
Se sì, dove impostare il conteggio delle visualizzazioni false in base al codice?
Quale sarebbe la chiave meta per chiamarla in una query?
‘post_views_count’ è la chiave meta.
Ciao, è possibile far visualizzare il numero di visualizzazioni solo se è superiore a 1000?
Potresti usare questo codice quando visualizzi il conteggio dei commenti:
if (getPostViews(get_the_ID()) >= 1000) { echo getPostViews(get_the_ID()); }C'è un modo per escludere le visualizzazioni dell'amministratore dal conteggio?
Potresti voler usare qualcosa come questo codice per contare condizionalmente le visualizzazioni: https://www.isitwp.com/check-if-user-is-logged-in/
Hey Debjit Saha non riesco a trovare la cartella single.php nel mio template, dove dovrei incollare il codice?
Il loop principale per i singoli post potrebbe trovarsi in un altro file di template. Potresti voler controllare un file post.php o un file con un nome simile.
Grazie per questo codice. Ha funzionato perfettamente.
Bel frammento.
Come posso resettare i conteggi e ricominciare a contare?
Se conosci l'ID del post dei post che desideri, allora questo dovrebbe funzionare.
UPDATE yourDatabaseName.wp_postmeta
set meta_value = 0
where meta_key = ‘post_views_count’ and post_id = 1934
Ciao, ottimo il tuo post.
La mia domanda è come portare i dati da Google Analytics per mostrare il numero di visualizzazioni di Post e Pagine?
Hai un post o un link su come implementare questo?
Purtroppo non abbiamo una raccomandazione attuale per questo esattamente. Detto questo, potresti voler controllare: https://www.monsterinsights.com/how-to-check-stats-for-individual-wordpress-posts-and-pages/
Qualsiasi plugin di Google Analytics che possa recuperare i dati di visualizzazione e visualizzarli in WordPress?
Ce ne sono molti… Puoi controllare il nostro elenco completo dei migliori plugin di Google Analytics.
I codici non funzionano per me. Ho un argomento bbpress, il tipo di post è "topic". Ma quando ho controllato, meta_key si sta generando nel backend. Ma i valori meta non vengono aggiornati ad ogni visita.
Ottimi articoli, funziona bene sulla mia pagina
la mia domanda è, il conteggio inizierà solo dopo aver implementato quel codice?
perché tutte le mie vecchie pagine mostrano 0 o 1 visualizzazioni mentre in realtà hanno già migliaia di visualizzazioni.
Sì, il conteggio non inizia finché il plugin non è attivo. Qualsiasi visualizzazione precedente non è stata registrata da questo plugin.
Grazie mille – funziona benissimo!
Ho 'migliorato' leggermente la funzione get_post_views in modo che restituisca il testo corretto a seconda del numero di visualizzazioni. Ecco la mia versione:
function get_post_views($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 Visualizzazioni”;
}
if ($count==’1′) {
return “1 Visualizzazione”;
}
return $count.’ Visualizzazioni’;
}
Forse ti piacerebbe adottare questa versione.
Grazie per aver condiviso! :)
grazie.
Mi è stato di grande aiuto, grazie mille!
Fantastico! Funziona alla grande… Volevo solo vederlo nell’area admin e solo i primi due codici fanno al caso mio!
Ciao,
Grazie per il codice, funziona alla grande senza cache abilitata…
Ma, come posso farlo funzionare con wp rocket?
Per favore…
Qualcuno sa come formattare o troncare i numeri? Quindi invece di 4445 visualizzazioni, dovrebbe essere 4.445 o 4,5K?
Potresti voler usare funzioni PHP come round() e number_format() per questo caso d'uso.
Ciao, in qualche modo il mio codice funziona bene ma fa un incremento di +2 ogni volta, le visualizzazioni vanno 0, 2, 4, 6. Il che è stato fastidioso, per favore aiutami. Ho inserito il codice e la parte di visualizzazione dei post in una funzione che ha un'azione dopo il contenuto. Il contatore funziona, solo che è in multipli di 2.
Potresti voler verificare che questa funzione, setPostViews(get_the_ID()), venga aggiunta una sola volta. Quale hook stai usando?
il funzionerà nella cache di lightspeed?
Codice che appare sulla home page