web-dev-qa-db-fra.com

Écrire un nombre de vues avec le cache total w3

J'essaie de développer une fonctionnalité qui compte le nombre de fois qu'un message est affiché, mais j'utilise également la mise en cache de page (APC, possible dans le futur) via le cache total w3.

La valeur "nombre de vues" ne doit pas être montrée à quiconque, sauf aux administrateurs/éditeurs et uniquement lors de l'édition du message dans la section admin.

Donc ma question est si je fais ce qui suit pour chaque poste

update_post_meta($postID, 'view_count', $count++);

est-ce que ça va

  • travailler en considérant im utilisant la mise en cache de page?

  • si cela fonctionne, cela ralentirait-il considérablement la demande?

  • si cela ralentissait la demande, une mise à jour asynchrone de MySQL via MYSQLI_ASYNC accélérerait-elle cette sauvegarde?

Merci

3
Jase Whatson

Cela ne fonctionnera pas si la mise en cache des pages est activée, je vous recommande de créer une demande ajax qui appelle cette fonction à la place. par exemple.

add_action( "wp_ajax_nopriv_view_count", 'view_count' );
add_action( "wp_ajax_view_count",        'view_count' );
function view_count(){
    update_post_meta($_GET['id'], 'view_count', $count++);
}

(puis créez un appel ajax dans JS qui transmet l'id de la page à cette fonction de comptage)

Ajax ne devrait pas être affecté par la mise en cache des pages. Cette demande supplémentaire entraînera un léger surcoût avec chaque chargement de page, mais c'est le prix que vous payez si vous souhaitez effectuer votre propre décompte de pages vues. La seule solution consiste à utiliser un outil tiers tel que Google Analytics.

2
Peter Smith