وردپرس (WordPress) Custom Helper & Shortcode پلتفرم: wordpress مبتدی (Easy) سطح ریسک: پایین و بی‌خطر (Low Risk)

محاسبه و نمایش زمان تقریبی مطالعه نوشته در وردپرس (Reading Time)

تست‌شده و بازبینی‌شده در 1405/06/29 ۲۴۲ بار کپی ۵۷۶ مشاهده
پاسخ سریع و خلاصه کاربردی (Quick Answer)

با کد زیر تعداد کلمات متن شمرده شده و بر اساس سرعت استاندارد ۲۰۰ کلمه در دقیقه، زمان تقریبی با شورت‌کد `[reading_time]` چاپ می‌شود.

مشخصات فنی و شناسنامه کد (Code Information)

بازبینی: 1405/06/29
پلتفرم اجرایی (Platform) wordpress
نوع کد (Code Type) Custom Helper & Shortcode
محل قرارگیری فایل (Location) functions.php
سطح دشواری (Difficulty) مبتدی (Easy)
سطح ریسک (Risk Level) پایین و بی‌خطر (Low Risk)
نیاز به بکاپ اولیه؟ خیر (کم‌ریسک)
سازگاری با وردپرس تمامی نسخه‌ها
سازگاری با ووکامرس و HPOS سازگار
|
<?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>';
} );

کد را کجا قرار دهیم؟ (Placement Guide)

کد را در functions.php بگذارید و در فایل single.php یا با شورت‌کد در متن استفاده کنید.

مسیر فایل: functions.php

این کد چگونه کار می‌کند؟ (How it Works)

تگ‌های HTML و شورت‌کدها با توابع هسته وردپرس حذف شده و کلمات با رجکس چندبایتی شمرده می‌شوند و بر سرعت مطالعه تقسیم می‌گردند.

چه زمانی از این کد استفاده کنیم؟ (Use Cases)

در وبلاگ‌ها و مجلات خبری آنلاین برای بالا بردن تعامل خواننده.

چه زمانی نباید از این کد استفاده کنیم؟ (Anti-patterns)

در صفحات کوتاه، محصولات بدون متن بلند یا فرم‌های تماس.

پیش‌نیازهای اجرا

وردپرس ۳.۰ به بالا.

نحوه تست و اطمینان از عملکرد

شورت‌کد را در یک مقاله قرار دهید؛ زمان تخمینی متناسب با حجم کلمات نمایش داده می‌شود.

نحوه بازگردانی سریع (Rollback)

کد را حذف کنید.

خطاهای رایج و راه‌حل رفع

استفاده از str_word_count که با کاراکترهای فارسی سازگار نیست (کد ما از الگوی امن یونیکد `\s+/u` استفاده می‌کند).

ملاحظات و نکات امنیتی

خروجی با esc_html فیلتر شده است.

تاثیر بر سرعت و پرفورمنس

پردازش در کسری از میلی‌ثانیه بدون کوئری دیتابیس سنگین.

پرسش‌های متداول پیرامون این کد (FAQ)

بله، طبق تحقیقات سرعت مطالعه بزرگسالان بین ۱۸۰ تا ۲۲۰ کلمه در دقیقه است و ۲۰۰ کلمه استاندارد جهانی محسوب می‌شود.
منابع و مستندات رسمی بررسی‌شده (Official Sources):

سبد خرید شما

0 افزونه

سبد خرید شما خالی است

هنوز محصولی را به سبد خرید اضافه نکرده‌اید. می‌توانید از افزونه‌های اختصاصی ما دیدن فرمایید.

مشاهده فروشگاه افزونه‌ها

ثبت درخواست مشاوره

با تکمیل فرم زیر، کارشناسان فنی بیسکو وب در سریع‌ترین زمان ممکن با شما تماس می‌گیرند.

مشاور
پشتیبانی و مشاوره تخصصی
پاسخگویی سریع کارشناسان
09903336117