Cómo mostrar publicaciones populares basadas en vistas en WordPress sin un plugin

En el pasado, le mostramos cómo crear un tabulador de publicación popular en WordPress usando un plugin. Ese plugin funciona muy bien para los tabbers. Sin embargo, queríamos más personalización en nuestro diseño, por lo que decidimos hacerlo sin un plugin. En este artículo, le mostraremos cómo rastrear y mostrar publicaciones populares basadas en vistas en WordPress sin usar ningún plugin.

En la siguiente captura de pantalla se muestra un ejemplo de nuestra vista personalizada de publicaciones populares:

Lo primero que debemos hacer es crear una función que detecte el recuento de vistas de publicaciones y lo almacene como un campo personalizado para cada publicación. Para hacer esto, pegue los siguientes códigos en el archivo functions.php de su tema o más bien en un plugin específico del sitio:

function wpb_set_post_views($postID) {
    $count_key = 'wpb_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);
    }
}
//To keep the count accurate, lets get rid of prefetching
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

Ahora que tiene esta función en su lugar, debemos llamar a esta función en páginas de publicaciones individuales. De esta manera, la función sabe exactamente qué publicación recibe crédito por las vistas. Para hacer esto, debe pegar el siguiente código dentro de su bucle de publicación única:

wpb_set_post_views(get_the_ID());

Si está utilizando un tema hijo o simplemente quiere facilitar las cosas, debe agregar el rastreador en su encabezado usando el gancho wp_head. Luego pegue el siguiente código en el archivo functions.php de su tema o en el plugin específico del sitio:

function wpb_track_post_views ($post_id) {
    if ( !is_single() ) return;
    if ( empty ( $post_id) ) {
        global $post;
        $post_id = $post->ID;    
    }
    wpb_set_post_views($post_id);
}
add_action( 'wp_head', 'wpb_track_post_views');

Después de ingresarlo, cada vez que un usuario visite la publicación, se actualizará el campo personalizado.

Nota: si está utilizando un plugin de almacenamiento en caché, esta técnica NO funcionará de forma predeterminada. Estamos usando W3 Total Cache y tiene la función llamada Caché fragmentado. Puedes usarlo para que funcione bien. Esto es lo que debe cambiarse:

<!-- mfunc wpb_set_post_views($post_id); --><!-- /mfunc -->

Ahora puede hacer todo tipo de cosas interesantes como ver el recuento de vistas de publicaciones u ordenar las publicaciones por recuento de vistas. Echemos un vistazo a cómo hacer algunas de estas cosas interesantes.

Si desea ver el recuento de vistas de publicaciones en sus páginas de publicaciones individuales (a menudo junto al recuento de comentarios o algo así). Entonces, lo primero que debe hacer es agregar lo siguiente en el archivo functions.php de su tema o en el plugin específico del sitio.

function wpb_get_post_views($postID){
    $count_key = 'wpb_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';
}

Luego, dentro de su bucle de publicación, agregue el siguiente código:

wpb_get_post_views(get_the_ID());

Si desea ordenar las publicaciones por número de vistas, puede hacerlo fácilmente utilizando el parámetro wp_query post_meta. La consulta de bucle de ejemplo más simple se vería así:

<?php 
$popularpost = new WP_Query( array( 'posts_per_page' => 4, 'meta_key' => 'wpb_post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC'  ) );
while ( $popularpost->have_posts() ) : $popularpost->the_post();

the_title();

endwhile;
?>

Para agregar otros parámetros de WP_Query, como el intervalo de tiempo, consulte Página WP_Query sobre el Codex.

Esperamos que hayas disfrutado de esta publicación.

¿Te ha resultado útil??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicado. Required fields are marked *