¿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.
¿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.
¿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.
¿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.
¿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.
¿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.
¿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.
¿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.
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?
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á.
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á.
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á.
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?
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/
ok, lo haré 🙂
hola Yves, ¿puedes compartir tu código? este fragmento parece no funcionar bien, como dijo Tam ‘Heisenberg’ Nguyen, mis estadísticas tampoco coinciden.
hola Yves, ¿puedes compartir tu código? este fragmento parece no funcionar bien, como dijo Tam ‘Heisenberg’ Nguyen, mis estadísticas tampoco coinciden.
hola Yves, ¿puedes compartir tu código? este fragmento parece no funcionar bien, como dijo Tam ‘Heisenberg’ Nguyen, mis estadísticas tampoco coinciden.
Hola, ¿puedes compartir el código aquí, por favor? Uso WP Super Cache y tengo problemas con el contador.
Lo hice
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.
¿Oh, en serio? mi error. Lo enviaré de nuevo.
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!
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.
Lo he probado y está funcionando :). ¡Muchas gracias por la información!
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!
¿Es posible obtener el recuento de visitantes del perfil con este código?
¿Es posible obtener el recuento de visitantes del perfil con este código?
[…] Rastrea las vistas de las publicaciones usando metadatos de publicación […]
¿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)
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?
Si tengo un campo personalizado llamado 'vistas' y supera las 100 vistas, ¿cómo puedo mostrar un mensaje específico en una plantilla?
Esto es perfecto. Exactamente lo que estaba buscando.
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
¡Genial, esto funciona perfectamente!
Esto es increíble, ¡muchas gracias!
bueno saberlo, 3q….
gracias
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?
¿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.