Die Lesedauer deiner Artikel automatisch anzeigen

Info echo
OpenClipart-Vectors-katze-1

Ist der Classic-Editor schon zu kennen? –
“Advanced Editor Tools – ist so klasse!”
Anklickt! – Advanced Editor Tools; und NEU! – Classic Widgets

Info echo
OpenClipart-Vectors-katze-2

Anklickt Classic-Editor mit Advanced Editor Tools
“Advanced Editor Tools – ist das ausgezeichnete!”
Anklickt! – Advanced Editor Tools; und NEU! – Classic Widgets

Info echo
OpenClipart-Vectors-katze-3

Klassischen Editor anwenden! – und …
“Advanced Editor Tools – ist so sehr gut !”
Anklickt! – Advanced Editor Tools; und NEU! – Classic Widgets

Info echo
OpenClipart-Vectors-katze-7

… die Welt gehört dem, der sie genießt.
“Advanced Editor Tools – und tut sehr gut!”
Anklickt! – Advanced Editor Tools; und NEU! – Classic Widgets

Info echo
OpenClipart-Vectors-katze-4

Advanced Editor Tools aktive Installationen: 2+ Millionen
“Advanced Editor Tools – ist so fabelhaft!”
Anklickt! – Advanced Editor Tools; und NEU! – Classic Widgets

Info echo
OpenClipart-Vectors-katze-5

Ansprechend! – so gehts hier zur Lancierung
“Advanced Editor Tools – ist de luxe!”
Anklickt! – Advanced Editor Tools; und NEU! – Classic Widgets

Info echo
OpenClipart-Vectors-katze-6

… und NEU! – Classic Widgets
“Classic Widgets – sind so grandiose!”
Anklickt! – Advanced Editor Tools; 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
“Advanced Editor Tools – ist so fein!”
Anklickt! – Advanced Editor Tools; 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-April