✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Jak wyświetlić szacowany czas czytania w postach na blogu?

7

Jeśli prowadzisz bloga WordPress, prawdopodobnie próbujesz znaleźć różne wtyczki i fragmenty, aby zajmować odwiedzających i zachęcać ich do czytania Twoich postów bez klikania.

W dzisiejszych czasach odwiedzający często chcą uzyskać jak najwięcej informacji, po prostu przeglądając stronę. Wyświetlanie szacowanego czasu czytania postu jest do tego bardzo przydatne. W ten sposób odwiedzający będzie wiedział, ile czasu potrzebuje na uzyskanie informacji poprzez przeczytanie interesującego go tematu. To z kolei zachęci autorów blogów do pisania postów, które będą ciekawsze i mniej czasochłonne. Ponadto jako właściciel bloga będziesz w stanie określić najlepsze podejście, sprawdzając dane i porównując czas, jaki użytkownicy spędzają na różnych postach.

Niektóre wtyczki z pewnością obejmują tę funkcjonalność, ale funkcja WordPress, która to obsługuje, jest bardzo prosta w użyciu. Dlatego nie ma potrzeby zapychania bloga inną wtyczką tylko w tym celu.

Aby łatwo zrozumieć tę metodę, wyjaśnimy ją, integrując zmiany w darmowym motywie WordPress Twenty Sixteen.

Zacznijmy od funkcji

if( !function_exists('content_estimated_reading_time')) {
/**
Function that estimates reading time for a given $content.
@param string $content Content to calculate read time for.
@paramint $wpm Estimated words per minute of reader.
@returns int $time Esimated reading time.
*/
function content_estimated_reading_time( $content = '', $wpm = 200) {
$clean_content= strip_shortcodes( $content );
$clean_content= strip_tags( $clean_content);
$word_count= str_word_count( $clean_content);
$time = ceil( $word_count/ $wpm );
$output = '<span class="read-time-holder">';
$output .= '<span class="read-time">'. $time .'</span>' .' ';
$output .= '<span class="read-text">'. esc_attr__('min read', 'twentysixteen' ). '</span>';
$output .='</span>';
return $output;
}
}

Funkcja przyjmuje dwa parametry – treść ($treść) oraz szacowane słowa na minutę czytnika ($wpm). Drugi parametr jest ustawiony na 200 dla przeciętnego czytnika, ale możesz ustawić go na inną wartość. Możesz zebrać przydatne informacje na ten temat w Internecie.

Wewnątrz funkcji musimy usunąć zawartość ze wszystkiego poza samymi słowami. Więc najpierw użyjemy dwóch funkcji do usuwania krótkich kodów i tagów (strip_shortcodes i strip_tags ).

Następnie musimy policzyć słowa w oczyszczonej zawartości. Dlatego będziemy przechowywać zawartość w zmiennej $word_count. Użytą tutaj funkcją zliczania słów jest str_word_count.

Aby obliczyć średni czas czytania, wystarczy podzielić liczbę słów przez słowa odczytywane na minutę, podczas gdy użyta tutaj funkcja ceil służy do zaokrąglania wyniku.

Druga część funkcji służy tylko do wyprowadzania kodu html z następującym po nim czasem i tekstem.

Aby zintegrować funkcję ze swoim motywem, po prostu dodaj ją na końcu pliku functions.php dla motywu, którego aktualnie używasz.

Jak widać, cała logika stojąca za średnim czasem czytania jest bardzo prosta. Mimo to funkcja sama niczego nie zrobi. Dlatego, aby wyświetlić go na Twojej liście blogów lub pojedynczych postach, musimy go najpierw wywołać.

Wywołanie funkcji

Istnieją różne sposoby działania funkcji. Poniżej omówimy trzy z nich.

Zwykle najłatwiejszym sposobem dla większości użytkowników jest wywołanie funkcji bezpośrednio z wnętrza pliku, w którym jest ona potrzebna. Powiedzmy, że na przykład musisz wywołać funkcję wewnątrz pliku single.php, który jest szablonem do wyświetlania pojedynczych postów. Oznacza to po prostu, że musisz otworzyć ten plik, a następnie wyświetlić tam funkcję z parametrem zawartości posta, na przykład:

<?php echo content_estimated_reading_time( get_the_content() ); ?>

Jest tak oczywiście, jeśli masz pętlę i całą strukturę wewnątrz pliku single.php, ale najprawdopodobniej nie. Przykładowa konstrukcja może wyglądać tak:

2 Użyj filtra

Nowoczesne i lepiej zakodowane motywy dzielą te moduły na różne pliki. Dlatego lepszym sposobem jest użycie filtra i zwrócenie zawartości z dodaniem funkcji filtra. Temat dodawania filtrów był już szeroko omawiany w Internecie.

3 zmodyfikuj istniejącą funkcję, aby uzyskać większą kontrolę;

Jest to prawdopodobnie najlepsze podejście, ponieważ możesz mieć większą kontrolę nad pozycjonowaniem danych wyjściowych. W motywie Twenty Sixteen znajduje się funkcja odpowiedzialna za drukowanie kategorii i tagów dla każdego posta na liście oraz pojedynczych postów. Jest to funkcja dwadzieścia szesnaście_wpisów_taksonomii. Pozostało Ci tylko skopiować i wkleić go do functions.php i zmodyfikować jego ostatnią część za pomocą naszej funkcji do wywołania szacowanego czasu odczytu.

Chcielibyśmy krótko wspomnieć, że ponieważ zachowaliśmy tę samą nazwę dla funkcji, zastąpi ona oryginalną. Teraz funkcja z naszą modyfikacją będzie wykonywana we wszystkich miejscach motywu.

Zmienione funkcje powinny wyglądać tak:

/**
* Function override of default function in parent theme
* Adding reading time function at the end
*/
function twentysixteen_entry_taxonomies() {
$categories_list= get_the_category_list( _x( ', ', 'Used between list items, there is a space after the comma.', 'twentysixteen') );
if ($categories_list&&twentysixteen_categorized_blog()) {
printf( '<span class="cat-links"><span class="screen-reader-text">%1$s </span>%2$s</span>',
_x( 'Categories', 'Used before category names.', 'twentysixteen' ),
$categories_list
);
}
$tags_list= get_the_tag_list( '', _x( ', ', 'Used between list items, there is a space after the comma.', 'twentysixteen') );
if ($tags_list&&! is_wp_error( $tags_list)) {
printf( '<span class="tags-links"><span class="screen-reader-text">%1$s </span>%2$s</span>',
_x( 'Tags', 'Used before tag names.', 'twentysixteen' ),
$tags_list
);
}
/*our code modification to this function*/
print content_estimated_reading_time(get_the_content());
}

W ten sposób wypiszemy czas odczytu w części z tagami i kategoriami, do których należy.

Jak wyświetlić szacowany czas czytania w postach na blogu?

Kod w pliku functions.php motywu Twenty Sixteen powinien wyglądać tak:

Jak wyświetlić szacowany czas czytania w postach na blogu?

if (!function_exists('content_estimated_reading_time')) {
/**
Function that estimates reading time for a given $content.
@param string $content Content to calculate read time for.
@param int $wpm Estimated words per minute of reader.
@returns int $time Esimated reading time.
*/
function content_estimated_reading_time( $content = '', $wpm = 200) {
$clean_content = strip_shortcodes( $content );
$clean_content = strip_tags( $clean_content );
$word_count = str_word_count( $clean_content );
$time = ceil( $word_count / $wpm );
$output = '<span class="read-time-holder">';
$output .= '<span class="read-time">'. $time. '</span>'. ' ';
$output .= '<span class="read-text">'. esc_attr__( 'min read', 'twentysixteen' ). '</span>';
$output .= '</span>';
return $output;
}
}
/**
* Function override of default function in parent theme
* Adding reading time function at the end
*/
function twentysixteen_entry_taxonomies() {
$categories_list = get_the_category_list( _x( ', ', 'Used between list items, there is a space after the comma.', 'twentysixteen') );
if ($categories_list && twentysixteen_categorized_blog()) {
printf( '<span class="cat-links"><span class="screen-reader-text">%1$s </span>%2$s</span>',
_x( 'Categories', 'Used before category names.', 'twentysixteen' ),
$categories_list
);
}
$tags_list = get_the_tag_list( '', _x( ', ', 'Used between list items, there is a space after the comma.', 'twentysixteen') );
if ($tags_list &&! is_wp_error( $tags_list)) {
printf( '<span class="tags-links"><span class="screen-reader-text">%1$s </span>%2$s</span>',
_x( 'Tags', 'Used before tag names.', 'twentysixteen' ),
$tags_list
);
}
/*our code modification to this function*/
print content_estimated_reading_time(get_the_content());
}

Najlepiej, aby ta modyfikacja była wykonana w motywie potomnym.

Dodając funkcję szacowanego czasu czytania do różnych motywów, należy pamiętać, że najlepsze sposoby integracji wywołania funkcji mogą się różnić. Postaraj się poświęcić trochę czasu, przeglądając kroki, które omówiliśmy, aby znaleźć najlepsze podejście.

Mamy nadzieję, że ten artykuł okazał się pomocny. Jeśli Ci się spodobało, zapoznaj się również z niektórymi z tych artykułów!

Źródło nagrywania: wpklik.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów