Cómo mostrar los mensajes más populares por vistas en WordPress sin un plugin

En el pasado te hemos enseñado cómo crear un tabulador de mensajes popular en WordPress usando un plugin. Ese plugin funciona muy bien en la caja de tabbers. Sin embargo, queríamos más personalización en nuestro diseño, así que decidimos hacerlo sin un plugin. En este artículo, le mostraremos cómo rastrear y mostrar los mensajes más populares por medio de vistas en WordPress sin usar ningún plugin.

Un ejemplo de nuestra popular pantalla de postproducción personalizada se muestra en la siguiente captura de pantalla:

Lo primero que tenemos que hacer es crear una función que detecte el número de vistas de los mensajes y lo almacene como un campo personalizado para cada mensaje. Para ello, pegue los siguientes códigos en el archivo functions.php de su tema o, mejor aún, en un plugin específico del sitio:

1234567891011121314functionwpb_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); }}//Para mantener el conteo exacto, vamos a deshacernos de la acción prefetchingremove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);

Ahora que tiene esta función en su lugar, necesitamos llamarla en las páginas de cada mensaje. De esta manera, la función sabe exactamente qué puesto recibe el crédito por las vistas. Para hacer esto, necesitaría pegar el siguiente código dentro de su bucle de correo único:

1wpb_set_post_views(get_the_ID());

Si estás usando un tema hijo o simplemente quieres hacer las cosas más fáciles para ti, entonces deberías simplemente añadir el tracker en tu cabecera usando wp_head hook. Así que pegue el siguiente código en el archivo functions.php de su tema o en el plugin específico del sitio:

123456789functionwpb_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’);

Una vez que hayas colocado esto, cada vez que un usuario visite el mensaje, el campo personalizado se actualizará.

Nota: Si está utilizando un plugin de caché, esta técnica NO funcionará de forma predeterminada. Estamos usando W3 Total Cache, y tiene la característica llamada Fragmented Caching. Puedes usar eso para hacer que esto funcione bien. Esto es lo que hay que cambiar:

1

Ahora, puedes hacer todo tipo de cosas interesantes, como mostrar el recuento de la vista de los mensajes, u ordenar los mensajes por el recuento de los mismos. Echemos un vistazo a cómo hacer algunas de estas cosas geniales.

Si quieres mostrar la vista de mensajes, cuenta en tus páginas de mensajes individuales (a menudo junto al recuento de comentarios o algo así). Entonces lo primero que tienes que hacer es añadir lo siguiente en el archivo functions.php de tu tema o en el plugin específico del sitio.

12345678910functionwpb_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.’ Vistas’;}

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

1wpb_get_post_views(get_the_ID());

Si desea ordenar los mensajes por número de vistas, puede hacerlo fácilmente utilizando el parámetro wp_query post_meta. El ejemplo más básico de consulta de bucle se vería así:

12345678 4, ‘meta_key’=> ‘wpb_post_views_count’, ` orderby’=> ` meta_value_num’, ` order’=> ` DESC’ );while( $popularpost->have_posts() : $popularpost->the_post(); the_title(); endwhile;?>

Para añadir otros parámetros de WP_Query, como el intervalo de tiempo, consulte la página WP_Query en el Codex.

Esperamos que haya disfrutado de este puesto.

Deja un comentario