Cómo registrar y mostrar las veces que se ha visto una entrada en el escritorio de WordPress usando Post Meta

0

¿Estás buscando una manera de registrar y mostrar las veces que se ha visto cada una de tus entradas en el escritorio de WordPress? Aunque probablemente haya un plugin para esto, este fragmento de código rápido lo puedes usar para mostrar las vistas de los post dentro de las columnas de tu dashboard de WordPress.

Instrucciones:

Todo lo que tienes que hacer es añadir este código al archivo functions.php de tu tema o en un plugin específico de tu 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.' 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);
    }
}
 
// Evita problemas con la adición de views extras con el prefetching
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0); 

 

Opcionalmente, este código agrega una columna en el administrador de WordPress que muestra el contador de vistas de cada una de las entradas de WordPress:


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

Este código restante es el que realmente contará las vistas de cada entrada. Simplemente coloca el codígo siguiente dentro de single.php dentro del bucle Loop de WordPress.

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

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á. Sin embargo, W3 Total Cache tiene una característica llamada caché de fragmentos. En lugar de lo anterior, utiliza lo siguiente para que setPostViews() se ejecute correctamente y haga un seguimiento de todas las vistas de sus mensajes incluso cuando tengas habilitado el almacenamiento en caché.


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

 

El siguiente código es opcional. Utiliza este código si deseas mostrar el número de vistas dentro de tus entradas a los visitantes. Coloque este código en cualquier parte que desees dentro de Loop.

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

También te puede interesar: