Något som har blivit en allt vanligare syn på webbplatser med längre artiklar är lästidsräknare – en funktion som visar en uppskattning av hur lång tid det kommer att ta att läsa en artikel baserat på antalet ord. Medium är ett framstående exempel på detta. Att visa lästiden för artiklar ökar tiden besökare spenderar på en sida. Så hur kan du implementera det på din WordPress-webbplats?

Tillägg för lästid

Som med så många andra funktioner finns det flera tillägg som ordnar funktionaliteten åt dig. Ett av tilläggen är Reading Time WP. En del webbplatser visar ett inläggs lästid i inläggets meta-information, tillsammans med dess publiceringsdatum, kategorier och etiketter. Vill du uppnå samma resultat måste du lägga till lästid som en funktion i ditt tema.

Lästid utan tillägg

Börja med att öppna ditt temas functions.php-fil, antingen i en kodeditor eller i administrationspanelen under Utseende > Redigerare. Scrolla till dokumentets botten. Gör två radbrytningar före raden med ”?>”-tecknen längst ner i dokumentet, och klistra in koden nedan (modifierad från Binary Moon):

/* Uppskattad lästid för inlägg */
function estimated_reading_time() {

	$post = get_post();

	$words = str_word_count( strip_tags( $post->post_content ) );
	$minutes = floor( $words / 200 );
	$seconds = floor( $words % 200 / ( 200 / 60 ) );

	if ( 1 < $minutes ) {
		$estimated_time = '<p class="reading-time">' . $minutes . ' minut' . ($minutes == 1 ? '' : 'er') . ', ' . $seconds . ' sekund' . ($seconds == 1 ? '' : 'er') . '</p>';
	} else {
		$estimated_time = '<p class="reading-time">' . $seconds . ' sekund' . ($seconds == 1 ? '' : 'er') . '</p>';
	}

	echo $estimated_time;

}

Koden ovan hämtar antalet ord i inlägget, räknar ut hur lång tid det skulle att läsa det om man läser 200 ord i minuten – ungefär den genomsnittliga läshastigheten – och visar svaret i en <p>-tagg med klassen ”reading-time”.

För att använda funktionen, öppna single.php och leta upp meta-informationen för inlägget (där datum och kategorier visas). Klistra in koden <?php estimated_reading_time(); ?> på ett lämpligt ställe och spara. Lästiden visas nu i varje enskilt inlägg och är redo att anpassas med CSS.