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. 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ć.
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' );
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.