Cómo Mostrar el Contador de Vistas de Entradas

14 may 2014, 07:39:16
Vistas: 30.7K
Votos: 2

Estoy tratando de mostrar el contador de vistas de entradas.

He probado la siguiente función para mostrar el contador de vistas de entradas, pero estoy obteniendo el mismo número de vistas para todas las entradas en el bucle. No obtengo el conteo correcto de vistas.

Función:

       <?php
          // función para mostrar el número de entradas.
           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 Vista";
            }
            return $count.' Vistas';
      }             

          // función para contar vistas.
       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);
               }
             }


          // Añadirlo a una columna en 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'] = __('Vistas');
     return $defaults; 
        }
       function posts_custom_column_views($column_name, $id){
if($column_name === 'post_views'){
    echo getPostViews(get_the_ID());
      }
       }
     ?>

Código del Bucle:

   <ul>
      <?php $the_query = new WP_Query( 'showposts=5' ); ?>

        <?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
      <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a>

       <?php echo getPostViews(get_the_ID()); ?>  //Código de Vista de Entrada

  <?php echo substr(strip_tags($post->post_content), 0, 250);?></li>

      <?php endwhile;?>
  </ul>

Necesito sugerencias para mostrar el Contador de Vistas Correcto en el bucle While

2
Comentarios

¿Cuál es la fuente del código?

Brad Dalton Brad Dalton
14 may 2014 07:44:49

¿Puedes explicar por qué eliminas y luego agregas el conteo de visitas en la función getPostViews?

Chittaranjan Chittaranjan
14 may 2014 10:12:50
Todas las respuestas a la pregunta 3
1

Añade esto a single.php, y asegúrate de pegarlo dentro del loop.

<?php setPostViews(get_the_ID()); ?>

Finalmente, para mostrar el número de visitas que tiene una publicación, simplemente añade esto donde quieras que se muestre:

<?php echo getPostViews(get_the_ID()); ?>

.

<?php

// Función para mostrar el número de publicaciones.

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 Visita";
    }
    return $count.' Visitas';
}

// Función para contar visitas.
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);
    }
}

?>
10 abr 2017 12:06:41
Comentarios

Usé tu código y funciona bien, pero no sé por qué tenemos 2 consultas. https://uupload.ir/files/bt01_screen_shot_2020-12-01_at_4.57.55_am.png

D.JCode D.JCode
1 dic 2020 03:30:16
0

Si estás almacenando los meta datos correctamente, entonces puedes usar el siguiente código para mostrar el conteo

echo (int) get_post_meta(get_the_ID(), 'post_views_count', true) . ' Visita(s)';
14 may 2014 10:11:00
0
-1

Para el valor 0 en add_post_meta el contador de visitas no se actualiza. Prueba con la línea add_post_meta($postID, $count_key, '1'); en lugar de la línea add_post_meta($postID, $count_key, '0');.

29 may 2019 10:39:52