کتابخانه کد و توابع اختصاصی بیسکو وب

توابع تمیز، هوک‌های کارآمد و اسنیپت‌های تست‌شده برای وردپرس، ووکامرس، لاراول و وب مدرن جهت حذف افزونه‌های سنگین، بهبود نمره رندر و سرعت، با امکان کپی فوری و دانلود به عنوان افزونه آماده.

۱۰۰ قطعه کد آماده ۴۰۵۴۸ بار استفاده و کپی شده ۱۰۰٪ تست‌شده و ایمن
فضای کار توسعه و مهندسی کد استودیو بیسکو وب
PHP وردپرس (WordPress) Custom Helper & Shortcode

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

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

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?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>';
} );
۲۴۲ 1405/06/29

شورت‌کد نمایش تاریخ آخرین به‌روزرسانی نوشته در وردپرس (Last Updated Shortcode)

با شورت‌کد `[last_updated]` تاریخ آخرین اصلاح نوشته را به صورت زیبا در ابتدای مقالات نمایش دهید.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * شورت‌کد نمایش تاریخ آخرین به‌روزرسانی نوشته
 * نحوه استفاده: [last_updated]
 */
function bisco_last_updated_date_shortcode() {
    $modified_time = get_the_modified_time( 'U' );
    $created_time  = get_the_time( 'U' );

    // اگر نوشته حداقل ۱ روز بعد از ایجاد آپدیت شده باشد تاریخ ویرایش را نشان بده
    if ( $modified_time > ( $created_time + DAY_IN_SECONDS ) ) {
        $date_format = get_option( 'date_format' );
        $updated_date = get_the_modified_date( $date_format );

        return '<span class="bisco-last-updated">آخرین به‌روزرسانی: ' . esc_html( $updated_date ) . '</span>';
    }

    return '';
}
add_shortcode( 'last_updated', 'bisco_last_updated_date_shortcode' );
۲۵۰ 1405/06/29

شورت‌کد نمایش سال جاری در وردپرس (Current Year Shortcode)

با قرار دادن کد زیر در functions.php، با نوشتن `[current_year]` سال جاری همیشه به صورت پویا چاپ می‌شود.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * شورت‌کد نمایش سال جاری (میلادی یا هجری شمسی)
 * نحوه استفاده: [current_year] یا [current_year calendar="jalali"]
 */
function bisco_current_year_shortcode( $atts ) {
    $atts = shortcode_atts( array(
        'calendar' => 'gregorian', // 'jalali' یا 'gregorian'
    ), $atts );

    if ( 'jalali' === $atts['calendar'] && function_exists( 'jdate' ) ) {
        return jdate( 'Y' );
    }

    return date( 'Y' );
}
add_shortcode( 'current_year', 'bisco_current_year_shortcode' );
۶۴ 1405/06/29
PHP وردپرس (WordPress) Shortcode API

نحوه ساخت شورت‌کد سفارشی در وردپرس (WordPress Shortcode)

با تابع `add_shortcode` و استفاده صحیح از خروجی رشته‌ای (return به جای echo) شورت‌کد سفارشی بسازید.

پایین و بی‌خطر (Low Risk) متوسط (Medium)
<?php
/**
 * ساخت شورت‌کد باکس پیام و هشدار سفارشی
 * نحوه استفاده در متن: [bisco_alert type="success"]متن پیام شما[/bisco_alert]
 */
function bisco_alert_box_shortcode( $atts, $content = null ) {
    $atts = shortcode_atts( array(
        'type' => 'info', // پیش‌فرض: info, warning, success, error
    ), $atts, 'bisco_alert' );

    $type_class = sanitize_html_class( $atts['type'] );
    $output = '<div class="bisco-alert-box alert-' . esc_attr( $type_class ) . '">';
    $output .= do_shortcode( $content );
    $output .= '</div>';

    return $output;
}
add_shortcode( 'bisco_alert', 'bisco_alert_box_shortcode' );
۳۰۳ 1405/06/29
PHP وردپرس (WordPress) Action Hook (register_taxonomy)

ثبت دسته‌بندی سفارشی در وردپرس (Custom Taxonomy)

با تابع `register_taxonomy` دسته‌بندی مورد نظر را بسازید و آن را به پست‌تایپ اختصاصی متصل کنید.

متوسط (Medium Risk) متوسط (Medium)
<?php
/**
 * ثبت تاکسونومی سفارشی برای نمونه‌کارها (دسته‌بندی پروژه‌ها)
 */
function bisco_register_portfolio_taxonomy() {
    $labels = array(
        'name'              => 'دسته‌بندی پروژه‌ها',
        'singular_name'     => 'دسته پروژه',
        'search_items'      => 'جستجوی دسته‌ها',
        'all_items'         => 'همه دسته‌ها',
        'parent_item'       => 'دسته مادر',
        'parent_item_colon' => 'دسته مادر:',
        'edit_item'         => 'ویرایش دسته',
        'update_item'       => 'به‌روزرسانی دسته',
        'add_new_item'      => 'افزودن دسته جدید',
        'new_item_name'     => 'نام دسته جدید',
        'menu_name'         => 'دسته‌ها',
    );

    $args = array(
        'hierarchical'      => true, // به صورت دسته‌بندی والد/فرزند باشد (مانند دسته پست‌ها)
        'labels'            => $labels,
        'show_ui'           => true,
        'show_admin_column' => true, // نمایش ستون دسته در جدول ادمین
        'query_var'         => true,
        'show_in_rest'      => true, // نمایش در پنل سایدبار گوتنبرگ
        'rewrite'           => array( 'slug' => 'project-type' ),
    );

    register_taxonomy( 'project_type', array( 'portfolio' ), $args );
}
add_action( 'init', 'bisco_register_portfolio_taxonomy' );
۳۸۸ 1405/06/29
PHP وردپرس (WordPress) Action Hook (register_post_type)

ثبت پست تایپ سفارشی در وردپرس (Custom Post Type)

با تابع `register_post_type` درون اکشن `init` پست تایپ جدید با پشتیبانی از گوتنبرگ (`'show_in_rest' => true`) بسازید.

متوسط (Medium Risk) متوسط (Medium)
<?php
/**
 * ثبت پست تایپ سفارشی نمونه کارها (Portfolio) با استانداردهای مدرن وردپرس
 */
function bisco_register_portfolio_cpt() {
    $labels = array(
        'name'               => 'نمونه کارها',
        'singular_name'      => 'نمونه کار',
        'menu_name'          => 'نمونه کارها',
        'add_new'            => 'افزودن نمونه کار',
        'add_new_item'       => 'افزودن نمونه کار جدید',
        'edit_item'          => 'ویرایش نمونه کار',
        'new_item'           => 'نمونه کار جدید',
        'view_item'          => 'مشاهده نمونه کار',
        'search_items'       => 'جستجوی نمونه کارها',
        'not_found'          => 'هیچ نمونه کاری یافت نشد',
        'not_found_in_trash' => 'در زباله‌دان موردی یافت نشد',
    );

    $args = array(
        'labels'              => $labels,
        'public'              => true,
        'has_archive'         => true,
        'publicly_queryable'  => true,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'show_in_rest'        => true, // فعال‌سازی ویرایشگر گوتنبرگ و REST API
        'query_var'           => true,
        'rewrite'             => array( 'slug' => 'portfolio', 'with_front' => false ),
        'capability_type'     => 'post',
        'hierarchical'        => false,
        'menu_position'       => 5,
        'menu_icon'           => 'dashicons-portfolio',
        'supports'            => array( 'title', 'editor', 'thumbnail', 'excerpt', 'revisions' ),
    );

    register_post_type( 'portfolio', $args );
}
add_action( 'init', 'bisco_register_portfolio_cpt' );
۶۲۶ 1405/06/29
PHP سئو تکنیکال (Technical SEO) Template Redirect Hook

ریدایرکت صفحات پیوست به پست والد در وردپرس (Redirect Attachment Pages)

با هوک `template_redirect`، تمام صفحات پیوست را با کد ریدایرکت ۳۰۱ دائمی به پست والد یا صفحه اصلی هدایت کنید.

متوسط (Medium Risk) مبتدی (Easy)
<?php
/**
 * هدایت صفحات پیوست تصاویر به نوشته والد یا صفحه اصلی با ریدایرکت ۳۰۱
 * جهت حذف محتوای بی‌کیفیت (Thin Content) و بهبود سئوی تکنیکال
 */
function bisco_redirect_attachment_pages() {
    if ( is_attachment() ) {
        global $post;
        if ( ! empty( $post->post_parent ) && is_numeric( $post->post_parent ) ) {
            $parent_url = get_permalink( $post->post_parent );
            wp_safe_redirect( $parent_url, 301 );
            exit;
        } else {
            // در صورتی که عکس والدی نداشته باشد، به صفحه اصلی ریدایرکت شود
            wp_safe_redirect( home_url( '/' ), 301 );
            exit;
        }
    }
}
add_action( 'template_redirect', 'bisco_redirect_attachment_pages' );
۵۱۰ 1405/06/29

غیرفعال کردن تغییر مقیاس خودکار تصاویر بزرگ در وردپرس (Disable Big Image Scaling)

با بازگرداندن `__return_false` به فیلتر `big_image_size_threshold`، تغییر سایز خودکار تصاویر بزرگ را کاملاً خاموش کنید.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * غیرفعال‌سازی تغییر مقیاس خودکار تصاویر با ابعاد بیش از ۲۵۶۰ پیکسل در وردپرس
 */
add_filter( 'big_image_size_threshold', '__return_false' );
۳۴۴ 1405/06/29

غیرفعال کردن تولید سایزهای بلااستفاده تصاویر در وردپرس (Remove Unused Image Sizes)

با فیلتر `intermediate_image_sizes_advanced`، سایزهایی که در قالب استفاده نمی‌کنید (نظیر 1536x1536 یا 2048x2048) را از لیست تولید حذف کنید.

متوسط (Medium Risk) متوسط (Medium)
<?php
/**
 * جلوگیری از تولید سایزهای غیرضروری تصاویر در وردپرس
 */
function bisco_disable_unused_image_sizes( $sizes ) {
    // حذف سایزهای پیش‌فرض بی‌استفاده وردپرس
    unset( $sizes['medium_large'] ); // 768px
    unset( $sizes['1536x1536'] );    // 2x Medium Large
    unset( $sizes['2048x2048'] );    // 2x Large

    return $sizes;
}
add_filter( 'intermediate_image_sizes_advanced', 'bisco_disable_unused_image_sizes' );
۱۱۱ 1405/06/29
PHP وردپرس (WordPress) Action Hook (add_image_size)

تعریف سایزهای اختصاصی تصاویر در وردپرس (Custom Image Size)

با تابع `add_image_size('custom-name', 800, 450, true);` سایز جدیدی با برش سخت ایجاد کرده و آن را در قالب با `the_post_thumbnail('custom-name')` فراخوانی کنید.

پایین و بی‌خطر (Low Risk) متوسط (Medium)
<?php
/**
 * ثبت ابعاد اختصاصی تصاویر متناسب با طراحی قالب
 */
function bisco_setup_custom_image_sizes() {
    // سایز کارت وبلاگ با نسبت تصویر ۱۶:۹ و برش دقیق
    add_image_size( 'bisco-blog-card', 640, 360, true );

    // سایز اسلایدر بزرگ صفحه اصلی
    add_image_size( 'bisco-hero-banner', 1200, 500, array( 'center', 'center' ) );
}
add_action( 'after_setup_theme', 'bisco_setup_custom_image_sizes' );

// نمایش سایز جدید در ویرایشگر وردپرس برای انتخاب دستی نویسندگان
add_filter( 'image_size_names_choose', function( $sizes ) {
    return array_merge( $sizes, array(
        'bisco-blog-card' => 'کارت وبلاگ (۶۴۰ در ۳۶۰)',
    ) );
} );
۱۲۲ 1405/06/29
PHP افزایش سرعت و پرفورمنس Action Hook (wp_dequeue_script)

حذف فایل‌های جاوااسکریپت غیرضروری افزونه‌ها (Remove Plugin JavaScript)

با تابع `wp_dequeue_script` در اکشن `wp_enqueue_scripts` با اولویت ۱۰۰، فایل‌های JS افزونه را در صفحات مشخص خنثی کنید.

پایین و بی‌خطر (Low Risk) متوسط (Medium)
<?php
/**
 * لغو بارگذاری اسکریپت‌های جاوااسکریپت فرم تماس در صفحات بدون فرم
 */
function bisco_remove_unneeded_plugin_js() {
    // اگر صفحه دارای فرم تماس نیست، اسکریپت آن لغو شود
    if ( ! is_page( 'contact' ) ) {
        wp_dequeue_script( 'contact-form-7' );
    }

    // لغو اسکریپت‌های ووکامرس در وبلاگ
    if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() ) {
        wp_dequeue_script( 'wc-add-to-cart' );
    }
}
add_action( 'wp_enqueue_scripts', 'bisco_remove_unneeded_plugin_js', 100 );
۴۸۷ 1405/06/29
PHP افزایش سرعت و پرفورمنس Action Hook (wp_dequeue_style)

حذف فایل‌های CSS غیرضروری افزونه‌ها در صفحات خاص (Remove Plugin CSS)

با استفاده از تابع `wp_dequeue_style` و `wp_deregister_style` با اولویت بالا (مثلاً ۹۹) در هوک `wp_enqueue_scripts`، فایل استایل افزونه را در صفحات مشخص لغو کنید.

پایین و بی‌خطر (Low Risk) متوسط (Medium)
<?php
/**
 * حذف استایل‌های اضافی افزونه فرم تماس ۷ در صفحاتی به جز برگه تماس
 */
function bisco_remove_unneeded_plugin_css() {
    // اگر در برگه تماس یا لندینگ فرم نیستیم، استایل را حذف کن
    if ( ! is_page( array( 'contact', 'request-quote' ) ) ) {
        wp_dequeue_style( 'contact-form-7' );
    }

    // حذف استایل افزونه wp-block-library در صورت عدم استفاده از گوتنبرگ در فرانت
    if ( ! is_singular( 'post' ) ) {
        wp_dequeue_style( 'wp-block-library' );
        wp_dequeue_style( 'wp-block-library-theme' );
    }
}
add_action( 'wp_enqueue_scripts', 'bisco_remove_unneeded_plugin_css', 99 );
۳۴۳ 1405/06/29

سبد خرید شما

0 افزونه

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

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

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

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

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

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