محاسبه و نمایش زمان تقریبی مطالعه نوشته در وردپرس (Reading Time)
با کد زیر تعداد کلمات متن شمرده شده و بر اساس سرعت استاندارد ۲۰۰ کلمه در دقیقه، زمان تقریبی با شورتکد `[reading_time]` چاپ میشود.
<?php
/**
* محاسبه خودکار زمان تقریبی مطالعه بر اساس تعداد کلمات متن فارسی/انگلیسی
* نحوه استفاده: [reading_time] یا فراخوانی تابع bisco_get_reading_time() در پوسته
*/
function bisco_get_reading_time( $post_id = null ) {
$post = get_post( $post_id );
if ( ! $post ) {
return '';
}
$content = strip_shortcodes( $post->post_content );
$clean_content = wp_strip_all_tags( $content );
// شمارش کلمات برای متون فارسی و یونیکد
$word_count = count( preg_split( '/\s+/u', trim( $clean_content ) ) );
// سرعت میانگین مطالعه: ۲۰۰ کلمه در دقیقه
$reading_time = ceil( $word_count / 200 );
if ( $reading_time < 1 ) {
$reading_time = 1;
}
return sprintf( '%d دقیقه', $reading_time );
}
add_shortcode( 'reading_time', function() {
$time = bisco_get_reading_time( get_the_ID() );
return '<span class="bisco-reading-time"><i class="dashicons dashicons-clock"></i> زمان مطالعه: ' . esc_html( $time ) . '</span>';
} );