Navega sin publicidad. Contenidos extra. Plan gratis disponible. Regístrate ahora

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

 
  • JA
  • RU
  • CN
  • PT
  • DE
  • IT
  • FR
  • EN
  • 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 también tiene en cuenta el tiempo de lectura de las imágenes, que se establece en 10 segundos.

    Aunque este parámetro es bastante relativo porque dependerá de qué tipo de imágenes se trate, su tamaño y cantidad de elementos y texto que contenga, etc. creo que equilibra algo más 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 código 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).

    <?php
    
    function wp_reading_time() {
     
    // GET THE CONTENT OF THE WORDPRESS POST
    $content = get_post_field( 'post_content', $post->ID );
     
    // COUNT THE NUMBER OF WORDS
    $word_count = str_word_count( strip_tags( $content ) );
     
    // COUNT THE NUMBER OF IMAGES
    $image_count = substr_count( $content, '<img' );
     
    // READING TIME OF TEXTS - 200 WORDS PER MINUTE
    $reading_time = $word_count / 200;
     
    // READING TIME OF IMAGES - 10 SECONDS PER IMAGE
    $image_time = ( $image_count * 10 ) / 60;
     
    // ADD READING TIME OF TEXTS AND IMAGES
    $total_time = round( $reading_time + $image_time );
     
    // DETERMINE IF SINGULAR OR PLURAL (MINUTE/MINUTES)
    if ( $total_time == 1 ) { $minute = " min"; }
    else { $minute = " mins"; }
     
    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 estimado 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» con Elementor en la plantilla.

    Y este es el resultado:

    Contador de palabras sin plugin para WordPress


    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