Hoe geschatte leestijd toevoegen aan WordPress berichten en pagina's zonder plugin

 

Hoe voeg je een geschatte leestijd toe aan WordPress berichten en pagina's?

Leestijd.

verhoogt het rapporteren van de leestijd de tijd die op de site wordt doorgebracht?

In sommige gevallen kan het toevoegen van deze informatie ervoor zorgen dat bezoekers langer op uw site blijven.

Uit verschillende analyses en ervaringen, althans zo wordt gezegd, blijkt dat mensen eerder geneigd zijn een artikel te bezoeken als ze van tevoren weten hoeveel tijd ze ongeveer nodig zullen hebben om het te lezen.

hoe snel lezen we?

Bij het lezen van verschillende teksten komen sommige gegevens of benaderingen naar voren die herhaald worden, zoals dat de gemiddelde leessnelheid van een volwassene 240 woorden per minuut is met een begripspercentage van 60%, maar dat de leessnelheid met 25% afneemt als er op een computerscherm gelezen wordt in plaats van op papier.

Daarom is de snelheid in het hier gepresenteerde voorbeeld ingesteld op 200 woorden per minuut.

Geschatte leestijd toevoegen zonder plugin

Deze informatie kan worden toegevoegd met een plugin of met een beetje code. Omdat het hier een dogma is om geen nieuwe plugin te installeren die maar goed is voor één simpel ding (bovendien zijn de meeste plugin's vrijwel niet meer te gebruiken), leggen we uit hoe u dit met een snippet kunt doen.

Als u de voorkeur geeft aan iets visuelers en eenvoudigers, zoals een voortgangsbalk bovenaan de pagina die zich vult terwijl u leest, dan kunt u hier vinden hoe u die zonder plugin kunt toevoegen.

Ik heb deze code gekozen en getest omdat het de eenvoudigste is, aangezien degenen die rekening houden met afbeeldingen een parameter meten die vrij relatief is. Dit hangt af van het type afbeeldingen, hun grootte en de hoeveelheid elementen en tekst die ze bevatten, enz. en het verfijnt de totale telling niet al te veel.

Er zijn niet veel blogs die deze schatting inclusief afbeeldingen toevoegen, maar omdat er in deze blog veel van zijn en de meeste vignetten van nature weinig tekst bevatten, heb ik besloten om het op 10 seconden te laten staan en dat lijkt me nog steeds veel.

Medium meet bijvoorbeeld 265 woorden per minuut met een aanpassing voor afbeeldingen van 12 seconden voor de eerste, 11 voor de tweede en 1 seconde minder voor elke afbeelding daarna. Alles meer na de tiende afbeelding wordt geteld bij drie seconden. Bron.

Voor Chinese, Japanse en Koreaanse publicaties stelt Medium het aantal tekens in op 500 per minuut met dezelfde instelling als hierboven voor afbeeldingen.

Code, houdt rekening met tekst en afbeeldingen

Deze andere code houdt rekening met de leestijd voor afbeeldingen, die is ingesteld op 10 seconden, maar misschien is het te lang voor sommige afbeeldingen, dus heb ik het verlaagd naar 6 seconden. Het kan altijd worden verbeterd door de berekening van seconden of complexere variabelen toe te voegen, afhankelijk van de hoogte van afbeeldingen of andere parameters om te proberen de gegevens wat meer te verfijnen (ik moedig iedereen die het weet aan om het te doen).

/*Leestijd */

functie wp_reading_time() {

// GET WORDPRESS POST CONTENT
$content = get_post_field( 'post_content', $post->ID );

// COUNT NUMBER OF WORDS
$word_count = str_word_count( strip_tags( $content ) );

// COUNT NUMBER OF IMAGES
$image_count = substr_count( $content, '<img' );

// TEXT READING TIME - 200 WORDS PER MINUTE
$reading_time = $word_count / 200;

// LEESTIJD BEELDEN - 10 SECONDEN PER BEELD
$image_time = ( $image_count * 10 ) / 60;

// TEKST EN BEELD LEESTIJD optellen
$total_time = rond( $reading_time $image_time );

// BEKIJK OF HET ENKEL OF PLURAL is
if ( $total_time == 1 ) { $minute = " minuut"; }
else { $minute = " minuten"; }

return $total_time . $minuut;

}

*Deze code werkt weliswaar in GeneratePress, maar het error_log registreert een terugkerende fout op deze regel:

// GET WORDPRESS POST CONTENT
$content = get_post_field( 'post_content', $post->ID );

De fout dit:

Poging om eigenschap "ID" op nul te lezen in ...  /path en regelnummer van functions.php
PHP Waarschuwing: ongedefinieerde variabele $post in ...    /path en hetzelfde regelnummer van functions.php

Ik probeer er nog steeds achter te komen hoe ik dit moet oplossen.

Er zijn verschillende manieren om de code toe te voegen: lokaal downloaden en bewerken van functions.php, direct vanuit de WordPress template editor (Appearance/Theme Editor) of bewerken, ook "on the fly", vanuit uw Cpanel bestandsbeheerder of iets dergelijks.

Als u niet moedig genoeg bent om dit fragment met de hand toe te voegen aan het bestand functions.php van uw sjabloon, kunt u ervoor kiezen om dit te doen met behulp van de plugin Code Snippets, die ook dient om uw verzameling functies beter georganiseerd op één plaats te houden.

Op deze manier kunt u wijzigingen snel en gemakkelijk ongedaan maken als er iets kapot gaat of als de code niet meer compatibel is met een update van PHP, een plugin of de WordPress core

Voeg dan gewoon deze code toe die de minuten op uw blog zal weergeven, waar "geschatte leestijd" staat kunt u schrijven wat u het beste lijkt.

<?php echo "Leestijd: " . wp_reading_time(); ?>

U kunt het toevoegen waar u maar wilt, maar als u besluit om het in de post meta te zetten, waar uw sjabloon de auteur van het bericht, de datum van publicatie, het aantal reacties, enz. toont, dan moet u de code toevoegen aan de post meta lus van het content.php of single.php bestand (afhankelijk van elke sjabloon) of page.php als u het ook aan de pagina's wilt toevoegen.

Nadat u gecontroleerd hebt of het werkt, hoeft u alleen nog maar de opmaak aan te passen, een pictogram toe te voegen of wat dan ook. Hier ziet het er zo uit:

Hoe geschatte leestijd toevoegen aan WordPress berichten en pagina's zonder plugin 1

Ik heb ervoor gekozen om het toe te voegen met een shortcode gemaakt met Ad Inserter op het kindthema in de sjabloon gemaakt met Elementor PRO voor alle berichten.

Cómo añadir el tiempo de lectura estimado en los post y páginas de WordPress
Hoe geschatte leestijd toevoegen aan WordPress berichten en pagina's zonder plugin 3

Hoewel het rommelig klinkt, is het een zeer schone optie om geen enkele regel code in WordPress te hoeven aanraken en om het op elk moment snel en zonder complicaties te kunnen wijzigen.

Code, berekent alleen door tekst te meten

Hier hebt u een andere alternatievefunctie die alleen tekst telt en minuten en seconden weergeeft, het is degene die ik nu gebruik en het geeft geen PHP-fout terug.

 * De tijd schatten die nodig is om een bericht in WordPress te lezen */

functie wpr_estimate_read_time() {

 $input = get_post();

 $ppm = 250; // we kunnen de PPM kiezen die we willen (200-300, bijvoorbeeld)
 $words = str_word_count( strip_tags( $input->post_content ) );
 $minuten = floor( $words / $ppm );
 $seconden = floor( ( $words % $ppm ) / ( $ppm / 60 ) );
  
 if ( 1 <= $minuten ) {
 $geschatte_tijd = $minuten . ' minuut' . ( 1 == $minuten ? '' : 's');
 if ( $seconds > 0 ) {
 $estimated_time .= ', ' . $seconds . ' second' . ( 1 === $seconds ? '' : 's' );
 }
 } else {
 $estimated_time = $seconds . ' second' . ( 1 === $seconds ? '' : 's' );
 }

 return $estimated_time;
}

Om het ergens toe te voegen:

<?php echo "Ingelezen: " . wpr_estimate_time_read(); ?>

Update 21 maart 2023

Extra, woordenteller zonder plugin

Een eenvoudige en snelle manier om het aantal woorden in elk bericht toe te voegen. U kunt het onder de titel of in de meta zetten, of waar u maar wilt en het opmaken met wat CSS.

1-Creëer shortcode met Code Snippet.

add_shortcode('teller', 'word_count');

2-Teken de functie.

functie word_count() {
$content = get_post_field( 'post_content', get_the_ID());
$word_count = str_word_count( strip_tags( $content ) );
return $word_count;
}
echo ' ' , word_count();

Tenslotte voegt u op dezelfde manier als hierboven beschreven de "teller" shortcode toe in de sjabloon met Elementor, GeneratePress, of wat u ook gebruikt.

En dit is het resultaat:

Contador de palabras sin plugin para WordPress