{"id":372178,"date":"2023-05-15T13:22:00","date_gmt":"2023-05-15T10:22:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=372178"},"modified":"2023-05-15T13:22:18","modified_gmt":"2023-05-15T10:22:18","slug":"como-exibir-o-tempo-de-leitura-estimado-em-postagens-do-blog","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/como-exibir-o-tempo-de-leitura-estimado-em-postagens-do-blog\/","title":{"rendered":"Como exibir o tempo de leitura estimado em postagens do blog"},"content":{"rendered":"\n<p>Se voc\u00ea administra um <a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-criar-uma-postagem-incrivel-no-blog-do-wordpress\/\" title=\"blog WordPress\">blog WordPress<\/a>, provavelmente est\u00e1 tentando encontrar diferentes plugins e snippets para manter seus visitantes ocupados e incentiv\u00e1-los a ler suas postagens sem clicar.<\/p>\n<p>Hoje em dia, os visitantes geralmente desejam obter o m\u00e1ximo de informa\u00e7\u00f5es poss\u00edvel apenas percorrendo uma p\u00e1gina. Exibir o tempo estimado de leitura de um post \u00e9 muito \u00fatil para isso. Dessa forma, o visitante saber\u00e1 quanto tempo precisa para obter informa\u00e7\u00f5es lendo um t\u00f3pico de seu interesse. Por sua vez, isso tamb\u00e9m incentivar\u00e1 os escritores de blogs a escreverem postagens mais interessantes e menos demoradas. Al\u00e9m disso, como propriet\u00e1rio de um blog, voc\u00ea estar\u00e1 em condi\u00e7\u00f5es de determinar a melhor abordagem se verificar as m\u00e9tricas e comparar o tempo que os visitantes gastam em postagens diferentes.<\/p>\n<p>Alguns plugins certamente cobrem essa funcionalidade, mas a fun\u00e7\u00e3o do WordPress que lida com isso \u00e9 muito simples de usar. Portanto, n\u00e3o h\u00e1 necessidade de entupir seu blog com outro plugin apenas para essa finalidade.<\/p>\n<p>Para entender facilmente esse m\u00e9todo, vamos explic\u00e1-lo integrando as altera\u00e7\u00f5es no tema gratuito do WordPress Twenty Sixteen.<\/p>\n<h2>Vamos come\u00e7ar com a fun\u00e7\u00e3o<\/h2>\n<pre><code>if( !function_exists('content_estimated_reading_time')) {\n\/**\nFunction that estimates reading time for a given $content.\n@param string $content Content to calculate read time for.\n@paramint $wpm Estimated words per minute of reader.\n@returns int $time Esimated reading time.\n*\/\nfunction content_estimated_reading_time( $content = '', $wpm = 200) {\n$clean_content= strip_shortcodes( $content );\n$clean_content= strip_tags( $clean_content);\n$word_count= str_word_count( $clean_content);\n$time = ceil( $word_count\/ $wpm );\n$output = '&lt;span class=\"read-time-holder\"&gt;';\n$output .= '&lt;span class=\"read-time\"&gt;'. $time .'&lt;\/span&gt;' .' ';\n$output .= '&lt;span class=\"read-text\"&gt;'. esc_attr__('min read', 'twentysixteen' ). '&lt;\/span&gt;';\n$output .='&lt;\/span&gt;';\nreturn $output;\n}\n}<\/code><\/pre>\n<p>A fun\u00e7\u00e3o aceita dois par\u00e2metros \u2013 <strong>conte\u00fado<\/strong> ($content) e <strong>palavras estimadas por minuto de leitor<\/strong> ($wpm). O segundo par\u00e2metro \u00e9 definido como 200 para um leitor m\u00e9dio, mas voc\u00ea pode configur\u00e1-lo para algum outro valor. Voc\u00ea pode coletar algumas <a href=\"http:\/\/www.readingsoft.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">informa\u00e7\u00f5es \u00fateis<\/a> sobre isso na internet.<\/p>\n<p>Dentro da fun\u00e7\u00e3o, precisamos remover o conte\u00fado de todo o resto, exceto as pr\u00f3prias palavras. Ent\u00e3o, primeiro, usaremos duas fun\u00e7\u00f5es para remover c\u00f3digos de acesso e tags (<strong><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/strip_shortcodes\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">strip_shortcodes<\/a><\/strong> e <strong><a href=\"https:\/\/php.net\/manual\/en\/function.strip-tags.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">strip_tags<\/a><\/strong> ).<\/p>\n<p>Depois, precisamos contar as palavras no conte\u00fado limpo. Portanto, armazenaremos o conte\u00fado em uma vari\u00e1vel $word_count. A fun\u00e7\u00e3o para contar palavras usada aqui \u00e9 <a href=\"https:\/\/php.net\/manual\/en\/function.str-word-count.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">str_word_count<\/a>.<\/p>\n<p>Para calcular o tempo m\u00e9dio de leitura, basta dividir a contagem de palavras pelas palavras lidas por minuto, enquanto a fun\u00e7\u00e3o <strong><a href=\"https:\/\/php.net\/manual\/en\/function.ceil.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ceil<\/a><\/strong> usada aqui \u00e9 para arredondar o resultado.<\/p>\n<p>A segunda parte da fun\u00e7\u00e3o \u00e9 apenas para a sa\u00edda do html com hora e texto a seguir.<\/p>\n<p>Para integrar a fun\u00e7\u00e3o ao seu tema, basta adicion\u00e1-la no final do arquivo functions.php para o tema que voc\u00ea est\u00e1 usando no momento.<\/p>\n<p>Como voc\u00ea pode ver, toda a l\u00f3gica por tr\u00e1s do tempo m\u00e9dio de leitura \u00e9 muito simples. Ainda assim, a fun\u00e7\u00e3o n\u00e3o far\u00e1 nada sozinha. \u00c9 por isso que, para exibi-lo em sua lista de blogs ou em postagens \u00fanicas, precisamos cham\u00e1-lo primeiro.<\/p>\n<h2>Chamando a fun\u00e7\u00e3o<\/h2>\n<p>Existem diferentes maneiras pelas quais voc\u00ea pode colocar a fun\u00e7\u00e3o para funcionar. Abordaremos tr\u00eas deles a seguir.<\/p>\n<p>Comumente, a maneira mais f\u00e1cil para a grande maioria dos usu\u00e1rios \u00e9 chamar a fun\u00e7\u00e3o diretamente de dentro do arquivo onde eles precisam. Digamos que, por exemplo, voc\u00ea precise chamar a fun\u00e7\u00e3o dentro do arquivo single.php, que \u00e9 um modelo para exibir posts \u00fanicos. Isso significa simplesmente que voc\u00ea precisa abrir este arquivo e, em seguida, ecoar a fun\u00e7\u00e3o l\u00e1 com o conte\u00fado do post como par\u00e2metro, assim:<\/p>\n<pre><code>&lt;?php echo content_estimated_reading_time( get_the_content() ); ?&gt;<\/code><\/pre>\n<p>Isso \u00e9 claro se voc\u00ea tiver um loop e toda a estrutura dentro do arquivo single.php, mas provavelmente n\u00e3o ter\u00e1. Um exemplo da estrutura pode ser assim:<\/p>\n<h3>2 Usar filtro<\/h3>\n<p>Temas modernos e melhor codificados separam esses m\u00f3dulos em arquivos diferentes. Portanto, um m\u00e9todo melhor \u00e9 usar o filtro e retornar o conte\u00fado com a adi\u00e7\u00e3o da fun\u00e7\u00e3o de filtro. O assunto de <a href=\"https:\/\/developer.wordpress.org\/plugins\/hooks\/filters\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">como adicionar filtro<\/a> j\u00e1 foi amplamente abordado na internet.<\/p>\n<h3>3 Modifique a fun\u00e7\u00e3o existente para mais controle<\/h3>\n<p>Esta \u00e9 provavelmente a melhor abordagem porque voc\u00ea pode ter mais controle para posicionar a sa\u00edda. No tema Twenty Sixteen, existe uma fun\u00e7\u00e3o respons\u00e1vel por imprimir categorias e tags para cada post da lista e posts avulsos. \u00c9 uma fun\u00e7\u00e3o Twentysixteen_entry_taxonomias. Tudo o que resta para voc\u00ea fazer \u00e9 simplesmente copi\u00e1-lo e col\u00e1-lo dentro de functions.php e modificar sua \u00faltima parte com nossa fun\u00e7\u00e3o para chamada de tempo estimado de leitura.<\/p>\n<p>Gostar\u00edamos de mencionar brevemente que, como mantivemos o mesmo nome para a fun\u00e7\u00e3o, ela substituir\u00e1 o original. Agora, a fun\u00e7\u00e3o com nossa modifica\u00e7\u00e3o ser\u00e1 executada em todos os lugares dentro do tema.<\/p>\n<p>As fun\u00e7\u00f5es alteradas devem ficar assim:<\/p>\n<pre><code>\/**\n* Function override of default function in parent theme\n* Adding reading time function at the end\n*\/\nfunction twentysixteen_entry_taxonomies() {\n$categories_list= get_the_category_list( _x( ', ', 'Used between list items, there is a space after the comma.', 'twentysixteen') );\nif ($categories_list&amp;&amp;twentysixteen_categorized_blog()) {\nprintf( '&lt;span class=\"cat-links\"&gt;&lt;span class=\"screen-reader-text\"&gt;%1$s &lt;\/span&gt;%2$s&lt;\/span&gt;',\n_x( 'Categories', 'Used before category names.', 'twentysixteen' ),\n$categories_list\n);\n}\n$tags_list= get_the_tag_list( '', _x( ', ', 'Used between list items, there is a space after the comma.', 'twentysixteen') );\nif ($tags_list&amp;&amp;! is_wp_error( $tags_list)) {\nprintf( '&lt;span class=\"tags-links\"&gt;&lt;span class=\"screen-reader-text\"&gt;%1$s &lt;\/span&gt;%2$s&lt;\/span&gt;',\n_x( 'Tags', 'Used before tag names.', 'twentysixteen' ),\n$tags_list\n);\n}\n\/*our code modification to this function*\/\nprint content_estimated_reading_time(get_the_content());\n}<\/code><\/pre>\n<p>Desta forma, emitiremos o tempo de leitura na pe\u00e7a com tags e categorias a que pertence.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2022\/10\/post-279910-633e28b2a99df.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2022\/10\/post-279910-633e28b2a99df.jpg\" alt=\"Como exibir o tempo de leitura estimado em postagens do blog\"><\/a><\/p>\n<p>O c\u00f3digo dentro do arquivo functions.php do tema Twenty Sixteen deve ficar assim:<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2022\/10\/post-279910-633e28b548cb0.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2022\/10\/post-279910-633e28b548cb0.jpg\" alt=\"Como exibir o tempo de leitura estimado em postagens do blog\"><\/a><\/p>\n<pre><code>if (!function_exists('content_estimated_reading_time')) {\n\/**\nFunction that estimates reading time for a given $content.\n@param string $content Content to calculate read time for.\n@param int $wpm Estimated words per minute of reader.\n@returns int $time Esimated reading time.\n*\/\nfunction content_estimated_reading_time( $content = '', $wpm = 200) {\n$clean_content = strip_shortcodes( $content );\n$clean_content = strip_tags( $clean_content );\n$word_count = str_word_count( $clean_content );\n$time = ceil( $word_count \/ $wpm );\n$output = '&lt;span class=\"read-time-holder\"&gt;';\n$output .= '&lt;span class=\"read-time\"&gt;'. $time. '&lt;\/span&gt;'. ' ';\n$output .= '&lt;span class=\"read-text\"&gt;'. esc_attr__( 'min read', 'twentysixteen' ). '&lt;\/span&gt;';\n$output .= '&lt;\/span&gt;';\nreturn $output;\n}\n}\n\/**\n* Function override of default function in parent theme\n* Adding reading time function at the end\n*\/\nfunction twentysixteen_entry_taxonomies() {\n$categories_list = get_the_category_list( _x( ', ', 'Used between list items, there is a space after the comma.', 'twentysixteen') );\nif ($categories_list &amp;&amp; twentysixteen_categorized_blog()) {\nprintf( '&lt;span class=\"cat-links\"&gt;&lt;span class=\"screen-reader-text\"&gt;%1$s &lt;\/span&gt;%2$s&lt;\/span&gt;',\n_x( 'Categories', 'Used before category names.', 'twentysixteen' ),\n$categories_list\n);\n}\n$tags_list = get_the_tag_list( '', _x( ', ', 'Used between list items, there is a space after the comma.', 'twentysixteen') );\nif ($tags_list &amp;&amp;! is_wp_error( $tags_list)) {\nprintf( '&lt;span class=\"tags-links\"&gt;&lt;span class=\"screen-reader-text\"&gt;%1$s &lt;\/span&gt;%2$s&lt;\/span&gt;',\n_x( 'Tags', 'Used before tag names.', 'twentysixteen' ),\n$tags_list\n);\n}\n\/*our code modification to this function*\/\nprint content_estimated_reading_time(get_the_content());\n}<\/code><\/pre>\n<p>De prefer\u00eancia, essa modifica\u00e7\u00e3o deve ser feita no tema filho.<\/p>\n<p>Ao adicionar a fun\u00e7\u00e3o de tempo de leitura estimado em diferentes temas, lembre-se de que as melhores maneiras de integrar a chamada de fun\u00e7\u00e3o podem variar. Tente levar algum tempo navegando pelas etapas que abordamos para encontrar a melhor abordagem.<\/p>\n<p>Esperamos que voc\u00ea tenha achado este artigo \u00fatil. Se voc\u00ea gostou, n\u00e3o deixe de conferir alguns desses artigos tamb\u00e9m!<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/wpklik.com\" class=\"external external_icon\">wpklik.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A exibi\u00e7\u00e3o do tempo estimado de leitura de uma postagem \u00e9 muito \u00fatil para obter o m\u00e1ximo de informa\u00e7\u00f5es poss\u00edvel apenas percorrendo uma p\u00e1gina.<\/p>\n","protected":false},"author":1,"featured_media":363314,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[573],"tags":[848],"class_list":["post-372178","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-nocoes-basicas-do-wordpress","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/372178","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=372178"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/372178\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/363314"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=372178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=372178"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=372178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}