Si eres un desarrollador web y prefieres crear un contador de visitas y mostrar vistas y post populares desde cero, entonces este artículo es para ti.
En este artículo, se explicará cómo crear un contador de visitas y mostrar vistas y post populares utilizando código desde cero.
Lo primero que debemos hacer es buscar el archivo funtions.php y pegar el siguiente código, que es la función para contar visualizaciones de un post y la función para obtener el número de visualizaciones de un post.
<?php // Función para contar visualizaciones de un post. function set_post_views() { if ( is_single() ) { $post_ID = get_the_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', 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; } ?>
Ahora usa el siguiente código para mostrar el contador de visitas en el archivo single.php o donde quieras mostrarlo:
<?php while ( have_posts() ) : the_post(); $post_views = get_post_views(get_the_ID());?> <p>Este post ha sido visto <?php echo sprintf( _n( '%s vez', '%s veces', $post_views, 'your_textdomain' ), $post_views );?></p> <?php endwhile; ?>
Y por ultimo para mostrar una lista de post populares, es decir los post que recibieron mas visitas (en este caso de los últimos 3 meses), pegar el siguientes código donde quieras mostrarlo:
<?php $args = array( 'showposts' => 6, 'meta_key' => 'post_views', 'orderby' => 'meta_value_num', 'order' => 'DESC', 'date_query' => array( array( 'after' => '-3 month', ), ), ); $popular_posts = new WP_Query( $args ); while ( $popular_posts->have_posts() ) : $popular_posts->the_post();?> <img src="<?php the_post_thumbnail_url($size = 'thumbnail'); ?>"> <h2><?php the_title();?></h2> <?php endwhile; ?>