وردپرس (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

فعال‌سازی اعلان‌های وب‌اپلیکیشن

از آخرین تخفیف‌های شگفت‌انگیز، وضعیت سفارشات و به‌روزرسانی‌های اختصاصی روی گوشی خود باخبر شوید.