Die Lesedauer deiner Artikel automatisch anzeigen

Info echo
OpenClipart-Vectors-katze-1

Ist der Classic-Editor schon zu kennen? –
"Classic und TinyMCE – ist so klasse!"
Anklickt Classic! – TinyMCE; und NEU! – Classic Widgets

Info echo
OpenClipart-Vectors-katze-2

Anklickt Classic-Editor mit TinyMCE Advanced
"Classic und TinyMCE – ist das ausgezeichnete!"
Anklickt Classic! – TinyMCE; und NEU! – Classic Widgets

Info echo
OpenClipart-Vectors-katze-3

Klassischen Editor anwenden! – und …
"Classic und TinyMCE – ist so sehr gut !"
Anklickt Classic! – TinyMCE; und NEU! – Classic Widgets

Info echo
OpenClipart-Vectors-katze-7

… die Welt gehört dem, der sie genießt.
"Classic und TinyMCE – und tut sehr gut!"
Anklickt Classic! – TinyMCE; und NEU! – Classic Widgets

Info echo
OpenClipart-Vectors-katze-4

TinyMCE aktive Installationen: 2+ Millionen
"Classic und TinyMCE – ist so fabelhaft!"
Anklickt Classic! – TinyMCE; und NEU! – Classic Widgets

Info echo
OpenClipart-Vectors-katze-5

Ansprechend! – so gehts hier zur Lancierung
"Classic und TinyMCE – ist de luxe!"
Anklickt Classic! – TinyMCE; und NEU! – Classic Widgets

Info echo
OpenClipart-Vectors-katze-6

… und NEU! – Classic Widgets
"Classic Widgets – sind so grandiose!"
Anklickt Classic! – TinyMCE; und NEU! – Classic Widgets

Info echo
OpenClipart-Vectors-katze-8a

Werkraum ist Werkraum und Frontend ist Frontend
Katzen SVG OpenClipart-Vectors; Ticker von Ditty News Ticker
"Classic und TinyMCE – ist so fein!"
Anklickt Classic! – TinyMCE; und NEU! – Classic Widgets

Die durchschnittliche Lesedauer für Artikel automatisch anzeigen, also von Text die Lesezeit ermitteln. So ist zu sehen, in welcher Zeitspanne hier zum Erfolg zu kommen ist.  Der Zeitdauer zum Wälzen ist nur das Prägnant, welches wirklich zu lesen ist, also ohne das der Bilder. Da ist sehr guter Code von der Website Kulturbanause. Und weiter bei so Beiträgen mit mehreren Codes im <pre>-Tag? So wäre das auch herauszurechnen? Somit der Frage folgt hier noch eine kleine Erweiterung, dass die Codes welche innerhalb <pre>-Tags sind, nicht in die Lesezeit mit einfließen.

Die Lesedauer ermitteln

Wie berechnet man die Lesedauer? Das PHP frei nach Kulturbanause im Titel Geschätzte Lesezeit von Beiträgen in WordPress anzeigen. Hier dann mit der Erweiterung, um die Inhalte (bspw. von Codes) im <pre>-Tag herauszurechnen.

Themes functions.php

/* Lesezeit anzeigen */
function kb_readingTime($post = null, $wpm = 275)
{
// Inhalt auslesen und bereinigen
$content = get_post_field('post_content', $post);
$content = strip_pre_tags($content); // <-- NEU !!
$content = strip_tags(strip_shortcodes($content));

// Anzahl der Wörter berechnen
$word_count = str_word_count($content);

// Lesezeit berechnen
$reading_time = ceil($word_count / $wpm);
return sprintf(esc_html__('Lesezeit so %s Min.   '), $reading_time);
}

// NEU --> die Funktion zum pre-Tag
function strip_pre_tags($content)
{
$regex = '/<pre[^>]*>([\s\S]*?)<\/pre[^>]*>/m';

return preg_replace($regex, '', $content);
}

Hinweise

  • Die Funktion um des <pre>-Tags Inhalte herauszurechnen, siehe https://www.phpliveregex.com/p/G7u#tab-preg-replace.
  • Der Reihenfolge wie oben des Codes ist das richtig. Denn wenn es der Reihenfolge anders, kann es die <pre>-Tags nicht entfernen, weil sie in der Zeile davor entfernt wurden. Also gemeint ist das $content = strip_pre_tags($content);. Wenn das so unterhalb eingefügt ist, dann funktioniert wie folgend das Beispiel ∴nicht∴
// Inhalt auslesen und bereinigen, so nicht!!!
$content = get_post_field('post_content', $post);
$content = strip_tags(strip_shortcodes($content));
$content = strip_pre_tags($content); // <-- NEU !!

Der Code zur Ausgabe

Der Vollständigkeitshalber ist hier frei nach Kulturbanause nochmal der Code zur Ausgabe:

<?php echo kb_readingTime(); ?>
Lesedauer, Beispiel Twenty Fourteen Theme content.php
Beispiel Twenty Fourteen Theme content.php

Danke an Kulturbanause und andere WP-Freunde.


Aktualisiert im Jahr 2023-Januar