Unlock the Secret to Effortless Website Magic: Build Your First WordPress Plugin Today!
Step 4: Use the setting in your plugin logic
Update your reading time calculation to use the saved WPM value:
function qrt_add_reading_time( $content ) {
if ( ! is_singular( 'post' ) || ! in_the_loop() || ! is_main_query() ) {
return $content;
}
$plain = wp_strip_all_tags( strip_shortcodes( get_post()->post_content ) );
$words = str_word_count( $plain );
$wpm = (int) get_option( 'qrt_wpm', 200 );
$minutes = max( 1, ceil( $words / $wpm ) );
$badge = sprintf(
'<p class="qrt-badge" aria-label="%s">%s</p>',
esc_attr__( 'Estimated reading time', 'quick-reading-time' ),
esc_html( sprintf( _n( '%s min read', '%s mins read', $minutes, 'quick-reading-time' ), $minutes ) )
);
return $badge . $content;
}
This function adds a reading time badge to post content. It checks context with is_singular()
, in_the_loop()
, and is_main_query()
to ensure it runs only on single posts in the main loop. It strips HTML and shortcodes using wp_strip_all_tags()
and strip_shortcodes()
), counts words, and retrieves the WPM value with get_option()
. The badge is output with proper escaping and localization using esc_attr__()
, esc_html()
, and _n()
).