Przejdź do głównej zawartości

Szacunkowy czas czytania poprzez własny shortcode w Wordpress.

Pewnie nie raz spotkaliście się z szacunkowym czasem czytania danego artykułu. Jest to dość łatwa funkcja zliczająca słowa i wykonująca obliczenia za pomocą prostego równania. Oto jak samodzielnie dodać ją do swojego functions.php.

Poniżej widzisz funkcję, możesz użyć jej samej w swoim motywie. Widzisz też jak tworzony jest shortcode, na tej podstawie już możesz tworzyć własne shortcode. A jeśli chcesz aby shortcode dodawał się sam, znajdzie się i na to metoda.

function reading_time_sc() {
$content = get_post_field( 'post_content', $post->ID );
$word_count = str_word_count( strip_tags( $content ) );
$readingtime = ceil($word_count / 200);
if ($readingtime == 1) { $timer = " minuta"; }
elseif ($readingtime >= 2 || $readingtime <=4){ $timer = " minuty"; }
else {$readingtime = "minut"; }
$totalreadingtime = '<p><small>Czas czytania: <b>'. $readingtime . $timer . '</b></small></p>';
return $totalreadingtime;
}

add_shortcode('czas-czytania', 'reading_time_sc',99);

Nasz shortcode to [czas-czytania].

wordpress czas czytania Wordpress. Szacunkowy czas czytania.

Trochę ciężko za każdym razem dodawać taki shortcode ręcznie. To może zmusimy Wordpress aby wykonał za nas shortcode automatycznie pod treścią, wtedy nie musimy go dodawać w edytorze. Dodaj jeszcze poniższy kod. Zauważ że rozgraniczamy warunkowo i dodajemy shortcode zarówno do wpisów jak i do stron. Można to zmodyfikować.

functions.php
function my_shortcode_to_a_post( $content ) {
global $post;
if( ! $post instanceof WP_Post ) return $content;

switch( $post->post_type ) {
case 'post':
return $content . '[czas-czytania]';
case 'page':
return $content . '[czas-czytania]';
default:
return $content;
}
}

add_filter( 'the_content', 'my_shortcode_to_a_post' );
uwaga

Modyfikacja demonstracyjna. Modyfikuj wyłącznie motywy swojego autorstwa lub twórz motywy typu child-theme aby nie stracić swoich modyfikacji po aktualizacji motywu z repozytorium Wordpress. Do modyfikacji functions.php możesz również użyć wtyczki Code Snippets.

hosting wordpress