WordPress: Lesezeit für einen Beitrag ermitteln

Im Grunde genommen ist die Ermittlung der Lesezeit eine einfache Dreisatzrechnung mit der Anzahl der Wörter des Beitrags und einem angenommenen Wert für die Lesegeschwindigkeit des Besuchers.

Die durchschnittliche Lesegeschwindigkeit eines Benutzers findet sich in der Wikipedia mit 200 bis 240 Wörtern pro Minute angegeben. Das variiert natürlich abhängig von der Komplexität der Texte, ob viele lange oder kurze Wörter verwendet werden etc. pp. Aber da es hier ja explizit um eine einfache und schnelle Ermittlung der voraussichtlichen Lesezeit gehen soll, lassen wir das alles außen vor.

Am Beispiel von WordPress fügt man der functions.php eine kleine Funktion hinzu:

<?php

function flomei_reading_time($post_id) {
	$thepost = get_post( $post_id );
	$content = $thepost->post_content;
	$word_count = str_word_count( $content, 0 );
	
	$words_per_minute = 230;
	
	$time = ceil( $word_count / $words_per_minute );
	return $time;
}

Diese Funktion erwartet die Übergabe einer Post ID, bezieht sich dann den Inhalt des Posts, zählt die Wörter und teilt diese durch die angenommene Lesegeschwindigkeit die in $words_per_minute angegeben ist. Das Ergebnis wird mittels ceil() dann aufgerundet, um einen Wert in vollen Minuten zu erhalten. Auf Spielereien wie sekundengenaue Angaben verzichte ich.

Die Integration ins Theme kann dann zum Beispiel wie folgt geschehen:

<?php

$lesezeit = flomei_reading_time(get_the_ID());		
switch ( $lesezeit ) {
	case 1: echo '<br />Ca. 1 Minute Lesedauer<br />'; break;
	default: echo '<br />Ca. ' . $lesezeit . ' Minuten Lesedauer<br />'; break;
}