Pensées
J'ai d'abord pensé que je devrais le faire. Existe-t-il un plug-in permettant d'obtenir cela ? Après la recherche, le premier est. 文章浏览量计数器(Post Views Counter)
, puis de sauvegarder les données à l'ouverture de l'article, afin que le nombre de lectures de l'article puisse être enregistré de manière persistante. wp_post
Mais WordPress est écrit en PHP et MySQL ajoute des champs, ce qui me prend assez de temps en front-end. Par exemple, comment faire fonctionner la base de données en utilisant PHP et comment ajouter des champs en utilisant PHP ? On estime que cela prendra au moins une demi-journée, voire une journée.
Parce que j'ai déjà joué avec la base de données WordPress, je sais quelles tables il y a. Alors j’ai soudain pensé à avoir une table
. Du point de vue littéral, il devrait être possible d'ajouter un champ ou de partir de ce tableau. wp_postmeta
wordpress propose plusieurs méthodes :
add_post_meta($post_id, $meta_key, $meta_value, $unique); get_post_meta($post_id, $meta_key, $single); update_post_meta($post_id, $meta_key, $meta_value, $prev_value); delete_post_meta($post_id, $meta_key, $meta_value);
Ajoutez d'abord la fonction d'encapsulation de add et get dans le fichier
, puis appelez-la dans le fichier function.php
. template-parts/content-single.php
// function.php function addPostViews($postId) { $key = 'post_views'; $value = get_post_meta($postId, $key, true); if($value == ''){ $value = 0; delete_post_meta($postId, $key); add_post_meta($postId, $key, $value); }else{ $value++; update_post_meta($postId, $key, $value); } } function getPostViews($postId){ $key = 'post_views'; $value = get_post_meta($postId, $key, true); if($value == ''){ $value = 0; delete_post_meta($postId, $key); add_post_meta($postId, $key, $value); return $value; } return $value; } // template-parts/content-single.php <p>阅读:<?php echo getPostViews(get_the_ID()); ?></p> <?php addPostViews(get_the_ID()); ?>