Cómo añadir el tiempo de lectura estimado en los post y páginas de WordPress

Visitas: 1.675
 
 

Cómo añadir el tiempo de lectura estimado en los post y páginas de WordPress

Tiempo de lectura.

¿Informar del tiempo de lectura aumenta la permanencia en el sitio?

En algunos casos, añadir esta información puede suponer un aumento en la cantidad de tiempo que los visitantes permanecen en tu sitio.

De distintos análisis y experiencias, al menos eso se dice, se desprende que la gente es más propensa a visitar un artículo cuando conoce de antemano el tiempo aproximado que le llevará leerlo.

¿A qué velocidad leemos?

Leyendo distintos textos aparecen algunos datos o aproximaciones que se repiten, como el de que la media de velocidad de lectura de un adulto es de 240 palabras por minuto con una tasa de comprensión del 60%, sin embargo, la velocidad de lectura disminuye sobre un 25% cuando se lee en una pantalla de ordenador en lugar de en papel.

Es por esto que en el ejemplo que se presenta se establece la velocidad en 200 palabras por minuto.

Añadir tiempo de lectura estimado sin plugin

Esta información se puede añadir con un plugin o con un poco de código. Como aquí es dogma evitar la instalación de un nuevo complemento que sirve sólo para una cosa simple (además, la mayoría están bastante abandonados) se explica cómo hacerlo con un snippet.

Si prefieres algo más visual y simple como una barra de progreso de lectura en la parte superior que se vaya llenando a medida que avanzas en la lectura, aquí puedes encontrar cómo añadirla también sin plugin.

He elegido y probado este código porque es el más simple ya que los que tienen en cuenta las imágenes miden un parámetro que es bastante relativo. Esto dependerá de qué tipo de imágenes se trate, su tamaño y cantidad de elementos y texto que contenga, etc. y no afina demasiado el recuento total.

No muchos blogs añaden esta estimación incluyendo las imágenes, pero como en este blog abundan y la mayoría son viñetas, por su naturaleza con poco texto, he decidido dejarlo en 10 segundos y aún me parece mucho.

Medium, por ejemplo, mide a 265 palabras por minuto con un ajuste realizado para las imágenes de 12 segundos para la primera, 11 para la segunda y 1 segundo menos para cada imagen que aparezca después. Cualquier otra después de la décima imagen se cuenta en tres segundos. Fuente.

Para las publicaciones en chino, japonés y coreano, Medium fija el número de caracteres en 500 por minuto con el mismo ajuste anterior para las imágenes.

Código

Este otro código tiene en cuenta el tiempo de lectura de las imágenes, que se establece en 10 segundos. Siempre se podría mejorar añadiéndole el cálculo de segundos o variables más complejas en función del alto de imágenes u otros parámetros para intentar afinar un poco más el dato. (Animo a cualquiera que sepa a que lo haga).

/*Tiempo de lectura */

function wp_reading_time() {

// OBTENER EL CONTENIDO DE LA ENTRADA DE WORDPRESS
$content = get_post_field( 'post_content', $post->ID );

// CONTAR EL NÚMERO DE PALABRAS
$word_count = str_word_count( strip_tags( $content ) );

// CONTAR EL NÚMERO DE IMÁGENES
$image_count = substr_count( $content, '<img' );

// TIEMPO DE LECTURA DE TEXTOS - 200 PALABRAS POR MINUTO
$reading_time = $word_count / 200;

// TIEMPO DE LECTURA DE IMÁGENES - 10 SEGUNDOS POR IMAGEN
$image_time = ( $image_count * 10 ) / 60;

// AÑADIR EL TIEMPO DE LECTURA DE TEXTOS E IMÁGENES
$total_time = round( $reading_time + $image_time );

// DETERMINAR SI ES SINGULAR O PLURAL
if ( $total_time == 1 ) { $minute = " minuto"; }
else { $minute = " minutos"; }

return $total_time . $minute;

}

Para añadir el código hay varios caminos: descargando y editando functions.php en local, directamente desde el editor de plantillas WordPress (Apariencia/ Editor de temas) o editándolo, también «en caliente», desde tu administrador de archivos de Cpanel o similar.

Si no te sientes con valor para añadir a mano este snippet al archivo functions.php de tu plantilla, puedes optar por hacerlo usando el plugin Code Snippets, que además sirve para tener tu colección de funciones mejor organizada en un mismo sitio.

Así podrás poder revertir los cambios de forma rápida y fácil si se rompe algo o el código deja de ser compatible con alguna actualización de PHP, de algún plugin o del core de WordPress

Después bastará añadir este código que pintará los minutos en tu blog, donde se lee «tiempo estimado de lectura» puedes escribir lo que te parezca mejor.

<?php echo "Tiempo de lectura: " . wp_reading_time(); ?>

Puedes añadirlo donde te plazca, aunque si decides meterlo en el post meta, donde tu plantilla muestra el autor de la entrada, la fecha de publicación número de comentarios, etc. debes añadir el código al loop post meta del archivo content.php o single.php (dependiendo de cada plantilla) o page.php si quieres añadirlo también a las páginas.

Después de comprobar que funciona, basta adaptar el formato, añadirle un icono o lo que sea. Aquí ha quedado así:

Cómo añadir el tiempo de lectura estimado en los post y páginas de WordPress

He optado por añadirlo con un shortcode creado con Ad Inserter sobre el tema hijo en la plantilla creada con Elementor PRO para todos los post.

Cómo añadir el tiempo de lectura estimado en los post y páginas de WordPress
Cómo añadir el tiempo de lectura estimado en los post y páginas de WordPress

Aunque suene a lío, es una opción muy limpia para no tener que tocar ni una línea de código en WordPress y poder modificarlo rápido y sin complicaciones en cualquier momento.

Actualización 9 de septiembre de 2021

Extra, contador de palabras sin plugin

Una forma simple y rápida de añadir el número de palabras que tiene cada post. Puedes ponerlo bajo el título o en los meta, o donde quieras y darle formato con un poco de CSS.

1-Se crea shortcode con Code Snippet.

add_shortcode('contador', 'word_count');

2-Se le asigna la función.

function word_count() {
$content = get_post_field( 'post_content', get_the_ID());
$word_count = str_word_count( strip_tags( $content ) );
return $word_count;
}
echo ' ' , word_count();

Finalmente, por el mismo método descrito anteriormente, se añade el shortcode  «contador» en la plantilla con Elementor, GeneratePress, o lo que uses.

Y este es el resultado:

Contador de palabras sin plugin para WordPress

Juan Ramón Mora. Dibujante descendiente del fanzineo. Ilustración satírica y humor gráfico para medios de todo pelaje. Las opiniones no se negocian.

Suscríbete por email para recibir las viñetas y los artículos completos y sin publicidad

Repositorio de documentales sobre dibujantes de cómic y humor gráfico.

Tontolares. Los titulares más gilipollas de la prensa. Envía los tuyos

Artículos relacionados

Este blog se aloja en LucusHost

LucusHost, el mejor hosting

Grandes personan que patrocinan.

Patreon

Recibe contenido extra y adelantos desde sólo un dolarcito al mes como ya hacen estos amables lectores:

César D. Rodas - Jorge Zamuz - David Jubete Rafa Morata - Sasha Pardo - Ángel Mentor - Jorge Ariño - Vlad SabouPedro - Álvaro RGV - Araq