{"id":371985,"date":"2023-05-15T13:34:00","date_gmt":"2023-05-15T10:34:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=371985"},"modified":"2023-05-15T13:34:04","modified_gmt":"2023-05-15T10:34:04","slug":"como-mostrar-el-tiempo-de-lectura-estimado-en-las-publicaciones-de-blog","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/como-mostrar-el-tiempo-de-lectura-estimado-en-las-publicaciones-de-blog\/","title":{"rendered":"C\u00f3mo mostrar el tiempo de lectura estimado en las publicaciones de blog"},"content":{"rendered":"\n<p>Si ejecuta un <a href=\"https:\/\/themewp.inform.click\/es\/como-crear-una-publicacion-de-blog-impresionante-en-wordpress\/\" title=\"blog de WordPress\">blog de WordPress<\/a>, probablemente est\u00e9 tratando de encontrar diferentes complementos y fragmentos para mantener a sus visitantes ocupados y alentarlos a leer sus publicaciones sin hacer clic.<\/p>\n<p>Hoy en d\u00eda, los visitantes a menudo quieren obtener la mayor cantidad de informaci\u00f3n posible simplemente hojeando una p\u00e1gina. Mostrar el tiempo de lectura estimado para una publicaci\u00f3n es muy \u00fatil para esto. De esta forma, un visitante sabr\u00e1 cu\u00e1nto tiempo necesita para obtener informaci\u00f3n leyendo un tema de inter\u00e9s. A su vez, esto tambi\u00e9n alentar\u00e1 a los escritores de blogs a escribir publicaciones que ser\u00e1n m\u00e1s interesantes y que consumir\u00e1n menos tiempo. Adem\u00e1s, como propietario de un blog, podr\u00e1 determinar el mejor enfoque si verifica las m\u00e9tricas y compara el tiempo que los visitantes pasan en diferentes publicaciones.<\/p>\n<p>Algunos complementos ciertamente cubren esta funcionalidad, pero la funci\u00f3n de WordPress que maneja esto es muy simple de usar. Por lo tanto, no hay necesidad de obstruir su blog con otro complemento solo para este prop\u00f3sito.<\/p>\n<p>Para comprender f\u00e1cilmente este m\u00e9todo, lo explicaremos integrando los cambios en el tema gratuito de WordPress Twenty Sixteen.<\/p>\n<h2>Empecemos con la funci\u00f3n.<\/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>La funci\u00f3n acepta dos par\u00e1metros: <strong>contenido<\/strong> ($contenido) y <strong>palabras estimadas por minuto de lector<\/strong> ($wpm). El segundo par\u00e1metro se establece en 200 para un lector promedio, pero puede establecerlo en alg\u00fan otro valor. Puede recopilar <a href=\"http:\/\/www.readingsoft.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">informaci\u00f3n \u00fatil<\/a> sobre esto en Internet.<\/p>\n<p>Dentro de la funci\u00f3n, necesitamos eliminar el contenido de todo lo dem\u00e1s, excepto de las propias palabras. Entonces, primero, usaremos dos funciones para eliminar c\u00f3digos cortos y etiquetas (<strong><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/strip_shortcodes\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">strip_shortcodes<\/a><\/strong> y <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>Luego, necesitamos contar las palabras en el contenido limpio. Por lo tanto, almacenaremos el contenido en una variable $word_count. La funci\u00f3n para contar palabras que se usa aqu\u00ed es <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 el tiempo promedio de lectura, solo necesitamos dividir el conteo de palabras por las palabras le\u00eddas por minuto, mientras que la funci\u00f3n <strong><a href=\"https:\/\/php.net\/manual\/en\/function.ceil.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ceil<\/a><\/strong> utilizada aqu\u00ed es para redondear el resultado.<\/p>\n<p>La segunda parte de la funci\u00f3n es solo para generar el html con la hora y el texto que siguen.<\/p>\n<p>Para integrar la funci\u00f3n en su tema, simplemente agr\u00e9guela al final del archivo functions.php para el tema que est\u00e1 utilizando actualmente.<\/p>\n<p>Como puede ver, toda la l\u00f3gica detr\u00e1s del tiempo promedio de lectura es muy simple. A\u00fan as\u00ed, la funci\u00f3n no har\u00e1 nada por s\u00ed misma. Es por eso que para mostrarlo en su lista de blogs o publicaciones individuales, debemos llamarlo primero.<\/p>\n<h2>Llamando a la funci\u00f3n<\/h2>\n<p>Hay diferentes maneras en las que puede poner la funci\u00f3n a trabajar. Cubriremos tres de ellos a continuaci\u00f3n.<\/p>\n<p>Com\u00fanmente, la forma m\u00e1s f\u00e1cil para la gran mayor\u00eda de los usuarios es llamar a la funci\u00f3n directamente desde el interior del archivo donde la necesitan. Digamos que, por ejemplo, necesita llamar a la funci\u00f3n dentro del archivo single.php, que es una plantilla para mostrar publicaciones individuales. Esto simplemente significa que necesita abrir este archivo y luego hacer eco de la funci\u00f3n all\u00ed con el contenido de la publicaci\u00f3n como par\u00e1metro, as\u00ed:<\/p>\n<pre><code>&lt;?php echo content_estimated_reading_time( get_the_content() ); ?&gt;<\/code><\/pre>\n<p>Esto es, por supuesto, si tiene un bucle y toda la estructura dentro del archivo single.php, pero lo m\u00e1s probable es que no lo tenga. Un ejemplo de la estructura puede verse as\u00ed:<\/p>\n<h3>2 Usar filtro<\/h3>\n<p>Los temas modernos y mejor codificados separan estos m\u00f3dulos en diferentes archivos. Por lo tanto, un mejor m\u00e9todo es usar el filtro y devolver el contenido con la adici\u00f3n de la funci\u00f3n de filtro. El tema de <a href=\"https:\/\/developer.wordpress.org\/plugins\/hooks\/filters\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">c\u00f3mo agregar un filtro<\/a> ya ha sido tratado ampliamente en Internet.<\/p>\n<h3>3 Modifique la funci\u00f3n existente para tener m\u00e1s control<\/h3>\n<p>Este es probablemente el mejor enfoque porque puede tener m\u00e1s control para posicionar la salida. En el tema Twenty Sixteen, hay una funci\u00f3n responsable de imprimir categor\u00edas y etiquetas para cada publicaci\u00f3n en la lista y publicaciones individuales. Es una funci\u00f3n twentysixteen_entry_taxonomies. Todo lo que te queda por hacer es simplemente copiarlo y pegarlo dentro de functions.php y modificar su \u00faltima parte con nuestra funci\u00f3n para la llamada de tiempo de lectura estimado.<\/p>\n<p>Nos gustar\u00eda mencionar brevemente que, dado que mantuvimos el mismo nombre para la funci\u00f3n, anular\u00e1 el original. Ahora, la funci\u00f3n con nuestra modificaci\u00f3n se ejecutar\u00e1 en todos los lugares dentro del tema.<\/p>\n<p>Las funciones modificadas deber\u00edan verse as\u00ed:<\/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>De esta forma, mostraremos el tiempo de lectura en la parte con las etiquetas y categor\u00edas a las que pertenece.<\/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=\"C\u00f3mo mostrar el tiempo de lectura estimado en las publicaciones de blog\"><\/a><\/p>\n<p>El c\u00f3digo dentro del archivo functions.php del tema Twenty Sixteen deber\u00eda verse as\u00ed:<\/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=\"C\u00f3mo mostrar el tiempo de lectura estimado en las publicaciones de 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>Preferiblemente, esta modificaci\u00f3n debe hacerse en el tema hijo.<\/p>\n<p>Al agregar la funci\u00f3n de tiempo de lectura estimado en diferentes temas, tenga en cuenta que las mejores formas de integrar la funci\u00f3n de llamada pueden variar. Trate de tomarse un tiempo para navegar por los pasos que hemos cubierto para encontrar el mejor enfoque.<\/p>\n<p>Esperamos que este art\u00edculo le haya resultado \u00fatil. Si te ha gustado, \u00a1no dudes en consultar algunos de estos art\u00edculos tambi\u00e9n!<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/wpklik.com\" class=\"external external_icon\">wpklik.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mostrar el tiempo de lectura estimado para una publicaci\u00f3n es muy \u00fatil para obtener la mayor cantidad de informaci\u00f3n posible con solo hojear una 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":[566],"tags":[849],"class_list":["post-371985","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-conceptos-basicos-de-wordpress","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/371985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/comments?post=371985"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/371985\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/363314"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=371985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=371985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=371985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}