
Tempo de leitura.
Informar o tempo de leitura aumenta o tempo de permanência no site?
Em alguns casos, incluir essas informações pode aumentar o tempo que os visitantes permanecem no seu site.
A partir de diversas análises e experiências — pelo menos é o que se diz —, percebe-se que as pessoas tendem a acessar um artigo com mais frequência quando sabem de antemão o tempo aproximado que levarão para lê-lo.
A que velocidade lemos?
Ao ler diversos textos, surgem alguns dados ou estimativas que se repetem, como o fato de que a velocidade média de leitura de um adulto é de 240 palavras por minuto, com uma taxa de compreensão de 60%, no entanto, a velocidade de leitura diminui em cerca de 25% quando se lê em uma tela de computador em vez de no papel.
É por isso que, no exemplo apresentado, a velocidade é definida em 200 palavras por minuto.
Adicionar tempo estimado de leitura sem plugin
Essas informações podem ser adicionadas por meio de um plugin ou com um pouco de código. Como aqui é regra evitar a instalação de um novo complemento que sirva apenas para uma função simples (além disso, a maioria deles está bastante abandonada), explicamos como fazer isso com um snippet.
Se você preferir algo mais visual e simples, como uma barra de progresso de leitura na parte superior que vai se preenchendo à medida que você avança na leitura, aqui você pode descobrir como adicioná-la também sem usar um plugin.
Escolhi e testei esse código porque é o mais simples; já os que levam em conta as imagens medem um parâmetro que é bastante relativo. Isso vai depender do tipo de imagem, do tamanho e da quantidade de elementos e de texto que ela contenha, etc., e não refina muito a contagem total.
Não são muitos os blogs que incluem essa estimativa levando em conta as imagens, mas como neste blog elas são muitas e a maioria são tirinhas — que, por natureza, têm pouco texto —, decidi deixar em 10 segundos e ainda assim me parece muito.
O Medium, por exemplo, calcula 265 palavras por minuto com uma configuração em que a primeira imagem leva 12 segundos, a segunda, 11, e cada imagem subsequente, 1 segundo a menos. Qualquer imagem após a décima é contabilizada como 3 segundos. Fonte.
Para publicações em chinês, japonês e coreano, o Medium limita o número de caracteres a 500 por minuto, com a mesma configuração anterior para imagens.
Código: calcula levando em conta texto e imagens
Este outro código leva em conta o tempo de leitura das imagens, que é definido em 10 segundos, mas talvez seja excessivo para certas imagens; por isso, reduzi para 6 segundos. Sempre é possível aprimorá-lo adicionando o cálculo de segundos ou variáveis mais complexas, dependendo da altura das imagens ou de outros parâmetros, para tentar refinar um pouco mais os dados. (Incentivo qualquer pessoa que saiba como fazer isso a tentar).
/*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;
}*Embora esse código funcione no GeneratePress, um erro recorrente nessa linha é registrado no error_log:
// OBTENER EL CONTENIDO DE LA ENTRADA DE WORDPRESS
$content = get_post_field( 'post_content', $post->ID );Este é o erro:
Attempt to read property "ID" on null in ... /ruta y nº de línea de functions.php
PHP Warning: Undefined variable $post in ... /ruta y mismo nº de línea de functions.phpAinda estou tentando descobrir como resolver isso.
Para inserir o código, há várias maneiras: baixando e editando o arquivo functions.php localmente, diretamente pelo editor de modelos do WordPress (Aparência/Editor de temas) ou editando-o, também “em tempo real”, pelo gerenciador de arquivos do cPanel ou similar.
Se você não se sentir à vontade para adicionar manualmente esse trecho de código ao arquivo functions.php do seu tema, pode optar por fazê-lo usando o plugin Code Snippets, que também serve para manter sua coleção de funções mais organizada em um único lugar.
Dessa forma, você poderá reverter as alterações de maneira rápida e fácil caso algo pare de funcionar ou o código deixe de ser compatível com alguma atualização do PHP, de algum plugin ou do núcleo do WordPress
Depois, basta adicionar esse código, que exibirá os minutos no seu blog; onde está escrito “tempo estimado de leitura”, você pode escrever o que achar melhor.
<?php echo "Tiempo de lectura: " . wp_reading_time(); ?>Você pode adicioná-lo onde quiser, mas se decidir colocá-lo no meta da postagem — onde seu modelo exibe o autor da postagem, a data de publicação, o número de comentários etc. você deve adicionar o código ao loop post meta do arquivo content.php ou single.php (dependendo de cada modelo) ou page.php, se quiser adicioná-lo também às páginas.
Depois de verificar se está funcionando, basta ajustar o formato, adicionar um ícone ou o que for necessário. Ficou assim:

Optei por inseri-lo usando um shortcode criado com o Ad Inserter no tema filho do modelo criado com o Elementor PRO para todas as postagens.


Embora possa parecer complicado, é uma opção bem prática para não precisar mexer em nenhuma linha de código no WordPress e poder modificá-lo rapidamente e sem complicações a qualquer momento.
Código: calcula apenas com base no texto
Aqui está outra função alternativa que considera apenas o texto e exibe minutos e segundos; é a que estou usando agora e não gera nenhum erro de PHP.
* Estima el tiempo necesario para leer una entrada en WordPress */
function wpr_estima_tiempo_lectura() {
$entrada = get_post();
$ppm = 250; // podemos escoger el PPM que queramos (200-300, por ejemplo)
$palabras = str_word_count( strip_tags( $entrada->post_content ) );
$minutos = floor( $palabras / $ppm );
$segundos = floor( ( $palabras % $ppm ) / ( $ppm / 60 ) );
if ( 1 <= $minutos ) {
$tiempo_estimado = $minutos . ' minuto' . ( 1 === $minutos ? '' : 's');
if ( $segundos > 0 ) {
$tiempo_estimado .= ', ' . $segundos . ' segundo' . ( 1 === $segundos ? '' : 's' );
}
} else {
$tiempo_estimado = $segundos . ' segundo' . ( 1 === $segundos ? '' : 's' );
}
return $tiempo_estimado;
}Para adicioná-lo em qualquer lugar:
<?php echo "Se lee en: " . wpr_estima_tiempo_lectura(); ?>Atualização em 21 de março de 2023
Extra, contador de palavras sem plugin
Uma maneira simples e rápida de adicionar o número de palavras de cada postagem. Você pode colocá-lo abaixo do título, nos metadados ou onde quiser, e formatá-lo com um pouco de CSS.
1-Cria-se um shortcode com o Code Snippet.
add_shortcode('contador', 'word_count');2-A função é atribuída a ele.
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();Por fim, seguindo o mesmo método descrito anteriormente, insira o shortcode “contador” no modelo usando o Elementor, o GeneratePress ou qualquer outro plugin que você utilize.
E este é o resultado:

Perguntas frequentes
Por que é útil indicar o tempo de leitura em um blog?
Mostrar o tempo estimado melhora a experiência do usuário (UX), pois o ajuda a decidir se tem tempo suficiente para ler o conteúdo naquele momento. Em alguns casos, isso costuma reduzir a taxa de rejeição e aumentar o engajamento do leitor com artigos mais longos.
Como se calcula tecnicamente o tempo de leitura?
O cálculo padrão se baseia na velocidade média de leitura de um adulto, que é de cerca de 200 a 250 palavras por minuto. A fórmula consiste em contar o número total de palavras da postagem e dividi-lo por essa média para obter a estimativa de minutos.
Qual é a vantagem de fazer isso por meio de código em vez de usar um plugin?
Ao usar um pequeno trecho de código (snippet) no seu arquivo functions.php, você evita carregar arquivos CSS e JavaScript desnecessários que geralmente vêm com os plugins de gerenciamento de snippets. Isso mantém o seu WordPress mais leve e seguro, além de otimizar a velocidade de carregamento (WPO).
É possível personalizar a mensagem sobre o tempo de leitura?
Sim. Ao usar seu próprio código, você tem total liberdade para alterar o texto (por exemplo, de “Tempo estimado de leitura” para “Tempo de leitura: ”) ou adicionar ícones. Você também pode decidir se deseja que ele seja exibido apenas nas postagens ou também nas páginas estáticas.
O tempo de leitura inclui o conteúdo dos comentários?
Normalmente, não. Os scripts bem configurados contam apenas as palavras dentro do contêiner do artigo (the_content). Isso é importante para que o tempo estimado seja realista e não seja alterado por sequências de comentários muito longas.








