Inhaltsverzeichnis
Lesedauer in WordPress-Beiträge einbinden
Die Lesedauer (engl.: Reading Time) in einem WordPress-Beitrag anzuzeigen, hat mehrere gute Gründe – sowohl für Leser als auch für SEO.
Sie verbessert das Nutzererlebnis, das Erwartungsmanagement und indirekt auch die Performance deiner Inhalte.
Und das alles mit minimalem Aufwand.

Einbinden per Shortcode
Eine Möglichkeit, die Lesedauer anzeigen zu lassen, ist, das Ganze in der functions.php deines (Child-)Themes anzulegen und mit einem entsprechenden Shortcode an der gewünschten Stelle einzubinden.
Der komplette Code für deine functions.php könnte so aussehen:
// START PXS LESEDAUER SHORTCODE
function pxs_lesedauer_shortcode( $atts ) {
if ( ! is_singular() ) {
return ''; // nur auf Einzelansichten (Beiträge/Seiten) anzeigen
}
global $post;
if ( empty( $post ) || empty( $post->post_content ) ) {
return '';
}
$atts = shortcode_atts(
array(
'wpm' => 200, // Wörter pro Minute
'label' => 'Lesedauer', // Text vor der Dauer
'prefix' => '', // z.B. Icon
'suffix' => 'Minuten', // Einheit
),
$atts,
'lesedauer'
);
$wpm = max( 1, (int) $atts['wpm'] );
// Inhalt bereinigen: Shortcodes raus, HTML raus
$content = strip_shortcodes( $post->post_content );
$content = wp_strip_all_tags( $content );
// Wörter zählen (robust für Umlaute etc.)
$word_count = str_word_count( wp_strip_all_tags( $content ), 0, 'äöüÄÖÜß' );
// Minuten berechnen, mindestens 1 Minute
$minutes = max( 1, (int) ceil( $word_count / $wpm ) );
// Ausgabe zusammensetzen (escapen!)
$label = sanitize_text_field( $atts['label'] );
$prefix = sanitize_text_field( $atts['prefix'] );
$suffix = sanitize_text_field( $atts['suffix'] );
return sprintf(
'<span class="pxs_lesedauer">%s%s: ~ %d %s</span>',
$prefix,
$label,
$minutes,
$suffix
);
}
add_shortcode( 'pxs_lesedauer', 'pxs_lesedauer_shortcode' );
// ENDE PXS LESEDAUER SHORTCODE
Einbinden in die Designvorlage oder ein Widget
Als nächstes muss nun der folgende Shortcode an die gewünschte Stelle in der Designvorlage der Beiträge oder in einem Widget (z.B. Sidebar) hinzugefügt werden:
[pxs_lesedauer]
Einbinden in eine Template-Datei
Um die Lesedauer über das Einbinden in eine Template-Datei wie z.B. single-post.php, muss der folgende Code an die gewünschte Stelle eingefügt werden:
<?php echo do_shortcode('[pxs_lesedauer]'); ?>
Code anpassen
Der Code bietet verschiedene Optionen, dass dieser noch individuell angepasst werden kann:
Im folgenden Abschnitt können die Wörter pro Minute (maßgeblich für die Berechnung der Dauer), die Formulierungen davor und danach und ein evtl. gewünschtes Icon angepasst werden:
'wpm' => 200, // Wörter pro Minute
'label' => 'Lesedauer', // Text vor der Dauer
'prefix' => '', // z.B. Icon
'suffix' => 'Minuten', // Einheit
Weiter kann zum Beispiel noch das inline-Element bearbeitet werden, das ausgegeben wird:
return sprintf(
'<span class="pxs_lesedauer">%s%s: ~ %d %s</span>',
$prefix,
$label,
$minutes,
$suffix
);
Wenn keine Änderungen vorgenommen werden, wird die Lesedauer im Beitrag wie folgt ausgegeben:
Lesedauer: ~ 2 Minuten
<span class="pxs_lesedauer">Lesedauer: ~ 2 Minuten</span>
Einbinden per Plugin
Wer weniger an Codes basteln will, sondern den etwas komfortableren Weg über ein Plugin wählen möchte, ist bspw. mit dem Plugin Reading Time WP gut bedient.
Dieses Plugin bietet ziemlich identischen Optionen sowie das automatisierte Einbinden in den gewünschten Inhaltstypen (Beiträge, Seiten, Medien und Projekte).

Da man hier aber in der Regel nur einmal bei der Einrichtung Anpassungen vornehmen muss, bevorzugen wir die Lösung per Shortcode, da zu viele WordPress-Plugins zu langsameren Ladezeiten, erhöhten Sicherheitsrisiken durch mehr Angriffsfläche und Kompatibilitätsproblemen führen können.