Willkommen beim WP Wegerl.at 'Lesemodus'!
Entspanntes Lesen und spannende Artikel warten auf dich.
Entdecke unsere besten Beiträge und genieße den Lesemodus.
smilies.4-user.de

Die Lesedauer von Artikel für Besucher automatisch anzeigen

Illustration, SVG Clker-Free-Vector-Images
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

Es geht darum, die durchschnittliche Lesedauer für Artikel automatisch anzuzeigen, indem die Lesezeit des Textes ermittelt wird. Die Lesedauer bezieht sich nur auf den tatsächlichen Text und sollte nicht die Zeit für Codes oder Bilder mit einberechnen. Ein sehr effektiver Code hierfür stammt von der Website Kulturbanause, hier mitsamt, dass Codes innerhalb von <pre>-Tags nicht in die berechnete Lesezeit einfließen.

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 und somit nicht in die Lesedauer mit einfließen.

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);
}

<pre>-Tags Inhalte herausrechnen

  • Die Funktion zum Entfernen des <pre>-Tags aus dem Inhalt ist unter https://www.phpliveregex.com/p/G7u#tab-preg-replace zu finden.
  • Die Reihenfolge des Codes, wie oben angegeben, ist korrekt. Wenn die Reihenfolge anders ist, können die <pre>-Tags nicht entfernt werden, da sie bereits in der vorherigen Zeile entfernt wurden. Konkret bedeutet das $content = strip_pre_tags($content);. Wenn dies unterhalb eingefügt wird, funktioniert das Beispiel daher nicht wie erwartet.
// 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

Nach Kulturbanause nochmal der Code zur Ausgabe. Das ist hier des Beispiels der content.php in den Meta integriert.

<?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