X

Cómo rastrear vistas de publicaciones sin un plugin usando metadatos de publicación

Snippets de IsItWP

¿Está buscando una forma de rastrear las vistas de las publicaciones sin un plugin utilizando metadatos de publicación? Si bien probablemente exista un plugin para esto, hemos creado un fragmento de código rápido que puede usar para rastrear las vistas de las publicaciones sin un plugin utilizando metadatos de publicación en WordPress.

Instrucciones:

Agrega este código al archivo functions.php de tu tema o a un plugin específico del sitio:

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); 

Opcionalmente, agregue este código también a una columna en el administrador de WordPress que muestre las vistas de las publicaciones:

// 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());
    }
}

Esta parte del código de rastreo de vistas establecerá las vistas de las publicaciones. Simplemente coloque este código a continuación dentro del archivo single.php dentro del Bucle de WordPress.

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

Nota sobre el almacenamiento en caché de fragmentos: Si está utilizando un plugin de almacenamiento en caché como W3 Total Cache, el método anterior para establecer vistas no funcionará, ya que la función setPostViews() nunca se ejecutaría. Sin embargo, W3 Total Cache tiene una función llamada almacenamiento en caché de fragmentos. En lugar de lo anterior, use lo siguiente para que setPostViews() se ejecute correctamente y rastree todas las vistas de sus publicaciones incluso cuando tenga el almacenamiento en caché habilitado.

<!-- mfunc setPostViews(get_the_ID()); --><!-- /mfunc -->

El código a continuación es opcional. Use este código si desea mostrar el número de vistas dentro de sus publicaciones. Coloque este código dentro del Bucle.

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

Nota: Si es la primera vez que agregas fragmentos de código en WordPress, consulta nuestra guía sobre cómo copiar / pegar fragmentos de código correctamente en WordPress, para que no rompas accidentalmente tu sitio.

Si te gustó este fragmento de código, considera revisar nuestros otros artículos en el sitio como: Los 10 mejores plugins de testimonios para WordPress y cómo configurar el seguimiento de autores en WordPress con Google Analytics.

Comentarios   Deja una respuesta

  1. ¿Me podrías ayudar a estilizar la salida del echo? Quiero poner el contador de visitas en mi loop y lo logré perfectamente, pero ¿cómo le agrego CSS a la salida para el texto? ¿Alguna idea sobre eso? Gracias.

  2. ¿Me podrías ayudar a estilizar la salida del echo? Quiero poner el contador de visitas en mi loop y lo logré perfectamente, pero ¿cómo le agrego CSS a la salida para el texto? ¿Alguna idea sobre eso? Gracias.

  3. ¿Me podrías ayudar a estilizar la salida del echo? Quiero poner el contador de visitas en mi loop y lo logré perfectamente, pero ¿cómo le agrego CSS a la salida para el texto? ¿Alguna idea sobre eso? Gracias.

  4. ¿Me podrías ayudar a estilizar la salida del echo? Quiero poner el contador de visitas en mi loop y lo logré perfectamente, pero ¿cómo le agrego CSS a la salida para el texto? ¿Alguna idea sobre eso? Gracias.

  5. ¿Me podrías ayudar a estilizar la salida del echo? Quiero poner el contador de visitas en mi loop y lo logré perfectamente, pero ¿cómo le agrego CSS a la salida para el texto? ¿Alguna idea sobre eso? Gracias.

  6. ¿Me podrías ayudar a estilizar la salida del echo? Quiero poner el contador de visitas en mi loop y lo logré perfectamente, pero ¿cómo le agrego CSS a la salida para el texto? ¿Alguna idea sobre eso? Gracias.

  7. ¿Me podrías ayudar a estilizar la salida del echo? Quiero poner el contador de visitas en mi loop y lo logré perfectamente, pero ¿cómo le agrego CSS a la salida para el texto? ¿Alguna idea sobre eso? Gracias.

  8. Md. Iftekharul Ibna Alam April 17, 2014 at 1:59 am

    Su conflicto con w3 total cache, los recuentos aumentan automáticamente en mi blog. Si alguien visita alguna de mis publicaciones, los recuentos de las demás publicaciones también aumentan. ¿Hay alguna solución para este tipo de conflicto?

    1. Si miras el primer fragmento en la parte inferior, tenemos lo siguiente:

      la precarga con algunos navegadores puede agregar visitas a publicaciones no vistas.

      // Eliminar problemas con la pre-carga que agrega vistas adicionales
      remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);

      La otra cosa a tener en cuenta es que este fragmento no está configurado para funcionar bien con plugins de caché.
      Así que no puedo estar seguro con mucha más prueba de qué tan bien funcionará.

    2. Si miras el primer fragmento en la parte inferior, tenemos lo siguiente:

      la precarga con algunos navegadores puede agregar visitas a publicaciones no vistas.

      // Eliminar problemas con la pre-carga que agrega vistas adicionales
      remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);

      La otra cosa a tener en cuenta es que este fragmento no está configurado para funcionar bien con plugins de caché.
      Así que no puedo estar seguro con mucha más prueba de qué tan bien funcionará.

    3. Si miras el primer fragmento en la parte inferior, tenemos lo siguiente:

      la precarga con algunos navegadores puede agregar visitas a publicaciones no vistas.

      // Eliminar problemas con la pre-carga que agrega vistas adicionales
      remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);

      La otra cosa a tener en cuenta es que este fragmento no está configurado para funcionar bien con plugins de caché.
      Así que no puedo estar seguro con mucha más prueba de qué tan bien funcionará.

  9. Yves Jeanrenaud April 1, 2014 at 4:44 pm

    gracias por el código. Lo actualicé para que también funcione con caché y sin usar funciones de wordpress, sino alterando directamente la tabla post_meta. ¿Alguien está interesado en estas actualizaciones?

    1. Hola Yves Jeanrenaud, creo que a mucha gente en wpsnipp le encantaría. Si envías el fragmento junto con algunos detalles, dominio, etc. De esa manera podemos darte crédito, sería genial.

      http://wpsnipp.com/index.php/contribute/

      1. Yves Jeanrenaud April 7, 2014 at 5:25 pm

        ok, lo haré 🙂

    2. Hector Castilla April 16, 2014 at 11:07 pm

      hola Yves, ¿puedes compartir tu código? este fragmento parece no funcionar bien, como dijo Tam ‘Heisenberg’ Nguyen, mis estadísticas tampoco coinciden.

    3. Hector Castilla April 16, 2014 at 11:07 pm

      hola Yves, ¿puedes compartir tu código? este fragmento parece no funcionar bien, como dijo Tam ‘Heisenberg’ Nguyen, mis estadísticas tampoco coinciden.

    4. Hector Castilla April 16, 2014 at 11:07 pm

      hola Yves, ¿puedes compartir tu código? este fragmento parece no funcionar bien, como dijo Tam ‘Heisenberg’ Nguyen, mis estadísticas tampoco coinciden.

    5. Hola, ¿puedes compartir el código aquí, por favor? Uso WP Super Cache y tengo problemas con el contador.

      1. Yves Jeanrenaud August 9, 2014 at 4:49 pm

        Lo hice

        1. Hola Yves,
          Creo que nunca recibí el código de ti, envíame un correo electrónico a contribute y te contactaré por Gmail para que puedas enviarlo de nuevo si no te importa. Creo que el código podría haber sido el problema al enviarlo a través del formulario de correo electrónico.

          1. Yves Jeanrenaud August 14, 2014 at 4:18 pm

            ¿Oh, en serio? mi error. Lo enviaré de nuevo.

  10. Abdulrahman Hariri March 26, 2014 at 7:18 pm

    Excelente código, gracias Kevin. Me preguntaba si has intentado usar esto en perfiles de autor. Estoy pensando en intentar usar otra versión de este código para almacenar valores en los metadatos del autor y contar las visitas a su página de perfil.

    ¡Gracias!

    1. Hola Abdulrahman Hariri,
      No, yo mismo no he probado esto en los perfiles de autor, sin embargo, no veo ninguna razón por la que no funcionaría. Aparte de actualizar la meta del usuario en lugar de la meta de la publicación, debería funcionar bien.

      1. Abdulrahman Hariri May 31, 2014 at 11:07 am

        Lo he probado y está funcionando :). ¡Muchas gracias por la información!

  11. Abdulrahman Hariri March 26, 2014 at 7:18 pm

    Excelente código, gracias Kevin. Me preguntaba si has intentado usar esto en perfiles de autor. Estoy pensando en intentar usar otra versión de este código para almacenar valores en los metadatos del autor y contar las visitas a su página de perfil.

    ¡Gracias!

  12. ¿Es posible obtener el recuento de visitantes del perfil con este código?

  13. ¿Es posible obtener el recuento de visitantes del perfil con este código?

  14. WordPress Users: How to Increase Functionality AND Speed Up Your Site January 30, 2014 at 10:19 am

    […] Rastrea las vistas de las publicaciones usando metadatos de publicación […]

  15. ¿Es posible cambiar el 'disparador' del incremento? por ejemplo, hacer que ciertos enlaces dentro de la publicación aumenten el valor de meta de la publicación cada vez que se hace clic en ellos. Con esto, tal vez podamos usar este genial fragmento para otros usos. (ej: cuántas veces se ha hecho clic en nuestro enlace de descarga)

  16. Amigo, ¿cómo hacerlo también funciona en la parte superior de la publicación más visitada con este código a continuación en tus scripts?

  17. Si tengo un campo personalizado llamado 'vistas' y supera las 100 vistas, ¿cómo puedo mostrar un mensaje específico en una plantilla?

  18. Esto es perfecto. Exactamente lo que estaba buscando.

  19. Md. Iftekharul Ibna Alam July 16, 2013 at 4:56 pm

    Ordenaste el fragmento de código muy bien y es fácil de entender. Ahora, tengo el recuento de vistas de publicaciones en mi blog. Gracias

  20. ¡Genial, esto funciona perfectamente!

  21. Esto es increíble, ¡muchas gracias!

  22. bueno saberlo, 3q….

  23. gracias

  24. Gracias por el genial fragmento, hombre. ¿Hay alguna forma de acumular todas las visitas anteriores a cada una de mis publicaciones con el recuento de vistas de la publicación actual?

  25. ¿Es posible restablecer este contador? Por ejemplo, quiero mostrar mis 'publicaciones más populares de la semana'. Cada semana, las vistas de las publicaciones se restablecen a 0.

Agrega un comentario

Nos complace que hayas elegido dejar un comentario. Ten en cuenta que todos los comentarios se moderan de acuerdo con nuestra política de privacidad, y todos los enlaces son nofollow. NO uses palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.

Lista de verificación para lanzar WordPress

La lista de verificación definitiva para lanzar WordPress

Hemos recopilado todos los elementos esenciales de la lista de verificación para el lanzamiento de tu próximo sitio web de WordPress en un práctico ebook.
¡Sí, envíame el eBook gratis!