Añadir número de veces visto en entradas, páginas, productos y cpts

En WordPress, puedes necesitar saber cuántas veces se ha visto un post específico, ya sea para fines de análisis o para mostrar una métrica en tu sitio web. Aquí te mostramos cómo puedes hacerlo mediante un par de funciones en tu archivo functions.php. Este código está implementado para que cuente tanto si es post, page, product. Si tienes un cpt propio, añádelo al array.

// Función para contar visualizaciones de un post o CPT
function set_post_views() {
    if ( is_singular() ) {  // Cambiado de is_single() a is_singular()
        $post_ID = get_the_ID();
        $post_type = get_post_type($post_ID); // Obtener el tipo de post

        // Lista de tipos de post que quieres contabilizar
        $allowed_post_types = array('post', 'page', 'product');

        // Verificar si el tipo de post actual está en la lista de tipos permitidos
        if (in_array($post_type, $allowed_post_types)) {
            $count = get_post_meta( $post_ID, 'post_views', true );
            if ( $count == '' ) {
                delete_post_meta( $post_ID, 'post_views' );
                add_post_meta( $post_ID, 'post_views', 1 );
            } else {
                update_post_meta( $post_ID, 'post_views', ++$count );
            }
        }
    }
}
add_action( 'wp', 'set_post_views' );


// Función para obtener el número de visualizaciones de un post
function get_post_views( $post_ID ){
    $count = get_post_meta($post_ID, 'post_views', true);
    if ( $count == '' ){
        delete_post_meta($post_ID, 'post_views');
        add_post_meta($post_ID, 'post_views', 0);
        return 0;
    }
    return $count;
}

//shortcode que muestra la cantidad de veces visto
function n_visto(){
  global $post;
  $post_views = get_post_views(get_the_ID());
  $output = '<div class="visualizaciones"><i class="fa fa-eye" aria-hidden="true"></i> Visto: <b>';
  $output .= sprintf( _n( '%s vez', '%s veces', $post_views, 'hello' ), $post_views );
  $output .= '</b></div>';
  return $output;
}      
add_shortcode('n_visto', 'n_visto');

//restablece el contador a cero todos los cpt
function reset_post_views() {
    // Comprobar si el parámetro 'contador' está presente y es igual a '0'
    if (isset($_GET['contador']) && $_GET['contador'] == '0') {
        // Realizar una consulta para obtener todas las publicaciones
        $args = array(
            'post_type'      => array('post', 'page', 'product'), // Añade aquí los tipos de publicaciones que te interesen
            'posts_per_page' => -1,
        );

        $query = new WP_Query($args);

        if ($query->have_posts()) : 
            while ($query->have_posts()) : $query->the_post();
                $post_ID = get_the_ID();
                // Restablecer el contador de vistas a 0
                delete_post_meta($post_ID, 'post_views');
                add_post_meta($post_ID, 'post_views', 0);
            endwhile;
        endif;

        // Aquí puedes añadir un mensaje o redirigir a otra página si lo deseas
        echo 'Los contadores de vistas han sido restablecidos a 0.';
        exit;
    }
}
// Añadir la función al hook 'init'
add_action('init', 'reset_post_views');




 

Código de Función para Contar Visualizaciones

La función set_post_views se encarga de contar las visualizaciones para los tipos de posts que especifiques. En este caso, se centra en ‘post’, ‘page’, ‘snippets’, y ‘product’.

Código de Función para Obtener el Número de Visualizaciones

La función get_post_views se encarga de devolver la cantidad de veces que se ha visto un post específico.

Shortcode para Mostrar la Cantidad de Veces Visto

La función n_visto crea un shortcode que puedes usar para mostrar el número de visualizaciones en cualquier parte de tu sitio.

Ejemplo de Uso

Para mostrar la cantidad de veces que un post ha sido visto, simplemente utiliza el shortcode [n_visto] en el editor de WordPress o en cualquier constructor visual como Elementor.

Este tutorial te proporciona una forma sencilla y efectiva de añadir esta funcionalidad a tu sitio WordPress. Ahora podrás rastrear y mostrar las visualizaciones de tus contenidos de manera efectiva.

¡Más Snippets, Más Opciones!

Al compartir, motivamos a más desarrolladores a contribuir. Ayúdanos a hacer de este directorio un punto de referencia en snippets.

Facebook
Twitter
LinkedIn
Telegram
WhatsApp

¿Cómo implementar este snippet en la web?

Tienes 2 opciones, una de ellas es mediante plugin y la otra pegando el código en tu web.

1. Añadir snippet con plugin

code-snippets

Code Snippets

Por Code Snippets Pro

  1. Descarga el plugin o búscalo en el repositorio de plugins de Wordpress e instálalo en tu web.
  2. En el menú lateral del Escritorio verás un nuevo enlace (Fragmetos de código). Ves a Fragmentos de código > Añadir nuevo.
  3. Se abrirá una página con un título, bloque de código, descripción y etiquetas, rellena el título con el que quieras guardarlo, ejemplo: Añadir Google Analytics.
  4. En la parte código verás que está activo PHP, ahí pega el código del snippet
  5. La descripción y las etiquetas solo son para tu información y para que luego encuentres más fácil los snippets.
  6. Publicar y activar el snippet.

2. Añadir snippet en el functions.php

Diseño web con WordPress

Accede al archivo functions.php de tu tema o tema hijo, pega el snippet y guarda el archivo.

Lo encontrarás en Apariencia > Editor de archivos de tema, pinchas sobre el enlace  functions.php y pegas el código al final del archivo.

Relacionados: