{"id":372016,"date":"2023-05-15T13:01:00","date_gmt":"2023-05-15T10:01:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=372016"},"modified":"2023-05-15T13:01:33","modified_gmt":"2023-05-15T10:01:33","slug":"jak-wyswietlic-szacowany-czas-czytania-w-postach-na-blogu","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/jak-wyswietlic-szacowany-czas-czytania-w-postach-na-blogu\/","title":{"rendered":"Jak wy\u015bwietli\u0107 szacowany czas czytania w postach na blogu?"},"content":{"rendered":"\n<p>Je\u015bli prowadzisz <a href=\"https:\/\/themewp.inform.click\/pl\/jak-stworzyc-niesamowity-post-na-blogu-wordpress\/\" title=\"bloga WordPress\">bloga WordPress<\/a>, prawdopodobnie pr\u00f3bujesz znale\u017a\u0107 r\u00f3\u017cne wtyczki i fragmenty, aby zajmowa\u0107 odwiedzaj\u0105cych i zach\u0119ca\u0107 ich do czytania Twoich post\u00f3w bez klikania.<\/p>\n<p>W dzisiejszych czasach odwiedzaj\u0105cy cz\u0119sto chc\u0105 uzyska\u0107 jak najwi\u0119cej informacji, po prostu przegl\u0105daj\u0105c stron\u0119. Wy\u015bwietlanie szacowanego czasu czytania postu jest do tego bardzo przydatne. W ten spos\u00f3b odwiedzaj\u0105cy b\u0119dzie wiedzia\u0142, ile czasu potrzebuje na uzyskanie informacji poprzez przeczytanie interesuj\u0105cego go tematu. To z kolei zach\u0119ci autor\u00f3w blog\u00f3w do pisania post\u00f3w, kt\u00f3re b\u0119d\u0105 ciekawsze i mniej czasoch\u0142onne. Ponadto jako w\u0142a\u015bciciel bloga b\u0119dziesz w stanie okre\u015bli\u0107 najlepsze podej\u015bcie, sprawdzaj\u0105c dane i por\u00f3wnuj\u0105c czas, jaki u\u017cytkownicy sp\u0119dzaj\u0105 na r\u00f3\u017cnych postach.<\/p>\n<p>Niekt\u00f3re wtyczki z pewno\u015bci\u0105 obejmuj\u0105 t\u0119 funkcjonalno\u015b\u0107, ale funkcja WordPress, kt\u00f3ra to obs\u0142uguje, jest bardzo prosta w u\u017cyciu. Dlatego nie ma potrzeby zapychania bloga inn\u0105 wtyczk\u0105 tylko w tym celu.<\/p>\n<p>Aby \u0142atwo zrozumie\u0107 t\u0119 metod\u0119, wyja\u015bnimy j\u0105, integruj\u0105c zmiany w darmowym motywie WordPress Twenty Sixteen.<\/p>\n<h2>Zacznijmy od funkcji<\/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>Funkcja przyjmuje dwa parametry \u2013 <strong>tre\u015b\u0107<\/strong> ($tre\u015b\u0107) oraz <strong>szacowane s\u0142owa na minut\u0119 czytnika<\/strong> ($wpm). Drugi parametr jest ustawiony na 200 dla przeci\u0119tnego czytnika, ale mo\u017cesz ustawi\u0107 go na inn\u0105 warto\u015b\u0107. Mo\u017cesz zebra\u0107 <a href=\"http:\/\/www.readingsoft.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">przydatne informacje<\/a> na ten temat w Internecie.<\/p>\n<p>Wewn\u0105trz funkcji musimy usun\u0105\u0107 zawarto\u015b\u0107 ze wszystkiego poza samymi s\u0142owami. Wi\u0119c najpierw u\u017cyjemy dw\u00f3ch funkcji do usuwania kr\u00f3tkich kod\u00f3w i tag\u00f3w (<strong><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/strip_shortcodes\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">strip_shortcodes<\/a><\/strong> i <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>Nast\u0119pnie musimy policzy\u0107 s\u0142owa w oczyszczonej zawarto\u015bci. Dlatego b\u0119dziemy przechowywa\u0107 zawarto\u015b\u0107 w zmiennej $word_count. U\u017cyt\u0105 tutaj funkcj\u0105 zliczania s\u0142\u00f3w jest <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>Aby obliczy\u0107 \u015bredni czas czytania, wystarczy podzieli\u0107 liczb\u0119 s\u0142\u00f3w przez s\u0142owa odczytywane na minut\u0119, podczas gdy u\u017cyta tutaj funkcja <strong><a href=\"https:\/\/php.net\/manual\/en\/function.ceil.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ceil<\/a><\/strong> s\u0142u\u017cy do zaokr\u0105glania wyniku.<\/p>\n<p>Druga cz\u0119\u015b\u0107 funkcji s\u0142u\u017cy tylko do wyprowadzania kodu html z nast\u0119puj\u0105cym po nim czasem i tekstem.<\/p>\n<p>Aby zintegrowa\u0107 funkcj\u0119 ze swoim motywem, po prostu dodaj j\u0105 na ko\u0144cu pliku functions.php dla motywu, kt\u00f3rego aktualnie u\u017cywasz.<\/p>\n<p>Jak wida\u0107, ca\u0142a logika stoj\u0105ca za \u015brednim czasem czytania jest bardzo prosta. Mimo to funkcja sama niczego nie zrobi. Dlatego, aby wy\u015bwietli\u0107 go na Twojej li\u015bcie blog\u00f3w lub pojedynczych postach, musimy go najpierw wywo\u0142a\u0107.<\/p>\n<h2>Wywo\u0142anie funkcji<\/h2>\n<p>Istniej\u0105 r\u00f3\u017cne sposoby dzia\u0142ania funkcji. Poni\u017cej om\u00f3wimy trzy z nich.<\/p>\n<p>Zwykle naj\u0142atwiejszym sposobem dla wi\u0119kszo\u015bci u\u017cytkownik\u00f3w jest wywo\u0142anie funkcji bezpo\u015brednio z wn\u0119trza pliku, w kt\u00f3rym jest ona potrzebna. Powiedzmy, \u017ce na przyk\u0142ad musisz wywo\u0142a\u0107 funkcj\u0119 wewn\u0105trz pliku single.php, kt\u00f3ry jest szablonem do wy\u015bwietlania pojedynczych post\u00f3w. Oznacza to po prostu, \u017ce musisz otworzy\u0107 ten plik, a nast\u0119pnie wy\u015bwietli\u0107 tam funkcj\u0119 z parametrem zawarto\u015bci posta, na przyk\u0142ad:<\/p>\n<pre><code>&lt;?php echo content_estimated_reading_time( get_the_content() ); ?&gt;<\/code><\/pre>\n<p>Jest tak oczywi\u015bcie, je\u015bli masz p\u0119tl\u0119 i ca\u0142\u0105 struktur\u0119 wewn\u0105trz pliku single.php, ale najprawdopodobniej nie. Przyk\u0142adowa konstrukcja mo\u017ce wygl\u0105da\u0107 tak:<\/p>\n<h3>2 U\u017cyj filtra<\/h3>\n<p>Nowoczesne i lepiej zakodowane motywy dziel\u0105 te modu\u0142y na r\u00f3\u017cne pliki. Dlatego lepszym sposobem jest u\u017cycie filtra i zwr\u00f3cenie zawarto\u015bci z dodaniem funkcji filtra. Temat <a href=\"https:\/\/developer.wordpress.org\/plugins\/hooks\/filters\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dodawania filtr\u00f3w<\/a> by\u0142 ju\u017c szeroko omawiany w Internecie.<\/p>\n<h3>3 zmodyfikuj istniej\u0105c\u0105 funkcj\u0119, aby uzyska\u0107 wi\u0119ksz\u0105 kontrol\u0119;<\/h3>\n<p>Jest to prawdopodobnie najlepsze podej\u015bcie, poniewa\u017c mo\u017cesz mie\u0107 wi\u0119ksz\u0105 kontrol\u0119 nad pozycjonowaniem danych wyj\u015bciowych. W motywie Twenty Sixteen znajduje si\u0119 funkcja odpowiedzialna za drukowanie kategorii i tag\u00f3w dla ka\u017cdego posta na li\u015bcie oraz pojedynczych post\u00f3w. Jest to funkcja dwadzie\u015bcia szesna\u015bcie_wpis\u00f3w_taksonomii. Pozosta\u0142o Ci tylko skopiowa\u0107 i wklei\u0107 go do functions.php i zmodyfikowa\u0107 jego ostatni\u0105 cz\u0119\u015b\u0107 za pomoc\u0105 naszej funkcji do wywo\u0142ania szacowanego czasu odczytu.<\/p>\n<p>Chcieliby\u015bmy kr\u00f3tko wspomnie\u0107, \u017ce poniewa\u017c zachowali\u015bmy t\u0119 sam\u0105 nazw\u0119 dla funkcji, zast\u0105pi ona oryginaln\u0105. Teraz funkcja z nasz\u0105 modyfikacj\u0105 b\u0119dzie wykonywana we wszystkich miejscach motywu.<\/p>\n<p>Zmienione funkcje powinny wygl\u0105da\u0107 tak:<\/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>W ten spos\u00f3b wypiszemy czas odczytu w cz\u0119\u015bci z tagami i kategoriami, do kt\u00f3rych nale\u017cy.<\/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=\"Jak wy\u015bwietli\u0107 szacowany czas czytania w postach na blogu?\"><\/a><\/p>\n<p>Kod w pliku functions.php motywu Twenty Sixteen powinien wygl\u0105da\u0107 tak:<\/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=\"Jak wy\u015bwietli\u0107 szacowany czas czytania w postach na blogu?\"><\/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>Najlepiej, aby ta modyfikacja by\u0142a wykonana w motywie potomnym.<\/p>\n<p>Dodaj\u0105c funkcj\u0119 szacowanego czasu czytania do r\u00f3\u017cnych motyw\u00f3w, nale\u017cy pami\u0119ta\u0107, \u017ce najlepsze sposoby integracji wywo\u0142ania funkcji mog\u0105 si\u0119 r\u00f3\u017cni\u0107. Postaraj si\u0119 po\u015bwi\u0119ci\u0107 troch\u0119 czasu, przegl\u0105daj\u0105c kroki, kt\u00f3re om\u00f3wili\u015bmy, aby znale\u017a\u0107 najlepsze podej\u015bcie.<\/p>\n<p>Mamy nadziej\u0119, \u017ce ten artyku\u0142 okaza\u0142 si\u0119 pomocny. Je\u015bli Ci si\u0119 spodoba\u0142o, zapoznaj si\u0119 r\u00f3wnie\u017c z niekt\u00f3rymi z tych artyku\u0142\u00f3w!<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/wpklik.com\" class=\"external external_icon\">wpklik.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wy\u015bwietlanie szacowanego czasu czytania posta jest bardzo przydatne, aby uzyska\u0107 jak najwi\u0119cej informacji, po prostu przegl\u0105daj\u0105c stron\u0119.<\/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":[572],"tags":[847],"class_list":["post-372016","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-podstawy-wordpressa","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/372016","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=372016"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/372016\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/363314"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=372016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=372016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=372016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}