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

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

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

شمارنده تعداد بازدید پست‌ها بدون افزونه در وردپرس (Post View Counter)

با تابع زیر در اکشن `wp_head` بازدید ثبت شده و با `[post_views]` تعداد بازدیدها نمایش داده می‌شود.

پایین و بی‌خطر (Low Risk) متوسط (Medium)
<?php
/**
 * سیستم سبک ثبت و نمایش تعداد بازدید پست در متای وردپرس
 */
function bisco_track_post_views() {
    if ( ! is_single() ) {
        return;
    }

    global $post;
    if ( ! isset( $post->ID ) ) {
        return;
    }

    // عدم شمارش بازدید ربات‌ها یا پیش‌نمایش‌ها
    if ( is_preview() || is_robots() ) {
        return;
    }

    $post_id = $post->ID;
    $count_key = 'bisco_post_views_count';
    $count = (int) get_post_meta( $post_id, $count_key, true );

    if ( empty( $count ) ) {
        delete_post_meta( $post_id, $count_key );
        add_post_meta( $post_id, $count_key, 1 );
    } else {
        $count++;
        update_post_meta( $post_id, $count_key, $count );
    }
}
add_action( 'wp_head', 'bisco_track_post_views' );

// شورت‌کد نمایش بازدید
add_shortcode( 'post_views', function() {
    $post_id = get_the_ID();
    $count = (int) get_post_meta( $post_id, 'bisco_post_views_count', true );
    return '<span class="bisco-post-views">بازدید: ' . number_format_i18n( $count ) . '</span>';
} );
۵۸۲ 1405/06/29
PHP وردپرس (WordPress) Admin Column Helper

نمایش شناسه نوشته (Post ID) در جدول مدیریت وردپرس (Show Post ID)

با هوک‌های `manage_posts_columns` و `manage_pages_columns` یک ستون اختصاصی با عرض ثابت برای Post ID ایجاد کنید.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * نمایش ستون شناسه عددی نوشته‌ها و برگه‌ها در پیشخوان وردپرس
 */
function bisco_add_id_column( $columns ) {
    $columns['bisco_post_id'] = 'شناسه (ID)';
    return $columns;
}
add_filter( 'manage_posts_columns', 'bisco_add_id_column' );
add_filter( 'manage_pages_columns', 'bisco_add_id_column' );

function bisco_render_id_column( $column, $post_id ) {
    if ( 'bisco_post_id' === $column ) {
        echo '<code style="font-family:monospace; background:#f0f0f1; padding:2px 6px; border-radius:4px; font-weight:600;">' . esc_html( $post_id ) . '</code>';
    }
}
add_action( 'manage_posts_custom_column', 'bisco_render_id_column', 10, 2 );
add_action( 'manage_pages_custom_column', 'bisco_render_id_column', 10, 2 );
۴۰۱ 1405/06/29

مخفی کردن خطاهای PHP در فرانت‌اند وردپرس (WP_DEBUG_DISPLAY)

با تنظیم `define('WP_DEBUG_DISPLAY', false);` و `@ini_set('display_errors', 0);` هیچ خطایی روی ظاهر سایت نشان داده نخواهد شد.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
/**
 * جلوگیری از نمایش هشدارهای PHP در فرانت سایت به کاربران
 */
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
۱۱۸ 1405/06/29

تغییر فاصله زمانی ذخیره خودکار در وردپرس (AUTOSAVE_INTERVAL)

با قرار دادن کد `define('AUTOSAVE_INTERVAL', 300);` در wp-config.php، بازه ذخیره خودکار ویرایشگر از ۱ دقیقه به ۵ دقیقه (۳۰۰ ثانیه) افزایش می‌یابد.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
/**
 * تغییر بازه زمانی ذخیره خودکار به ۳۰۰ ثانیه (۵ دقیقه)
 * جهت کاهش درخواست‌های ایجکس و کاهش مصرف CPU در پیشخوان
 */
define( 'AUTOSAVE_INTERVAL', 300 );
۱۳۶ 1405/06/29
PHP ووکامرس (WooCommerce) Action Hook (remove_action)

حذف محصولات مکمل از صفحه سبد خرید ووکامرس (Remove Cart Cross-sells)

با `remove_action('woocommerce_cart_collaterals', 'woocommerce_cross_sell_display');` بخش محصولات مکمل سبد خرید را حذف کنید.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * حذف کامل محصولات فروش مکمل (Cross-sells) از صفحه سبد خرید ووکامرس
 * جهت کاهش نرخ انصراف از خرید (Cart Abandonment)
 */
remove_action( 'woocommerce_cart_collaterals', 'woocommerce_cross_sell_display' );
۴۱۹ 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

غیرفعال کردن تغییر مقیاس خودکار تصاویر بزرگ در وردپرس (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

پیش‌بارگذاری فونت‌ها در وردپرس (Preload Fonts)

کد زیر را با تغییر مسیر فونت به functions.php اضافه کنید تا فونت اصلی سایت بلافاصله در بالاترین اولویت لود شود.

پایین و بی‌خطر (Low Risk) متوسط (Medium)
<?php
/**
 * پیش‌بارگذاری فونت‌های اصلی قالب جهت بهبود زمان LCP و جلوگیری از FOUT/CLS
 */
function bisco_preload_critical_fonts() {
    $font_url = get_stylesheet_directory_uri() . '/assets/fonts/iranyekan-web-regular.woff2';
    echo '<link rel="preload" href="' . esc_url( $font_url ) . '" as="font" type="font/woff2" crossorigin="anonymous">' . "
";
}
add_action( 'wp_head', 'bisco_preload_critical_fonts', 1 );
۶۲ 1405/06/29
APACHE پیکربندی .htaccess Redirect Directive

کد ریدایرکت ۳۰۱ تکی یک آدرس در فایل htaccess

با یک خط دستور Redirect 301 در .htaccess، آدرس قدیمی را به آدرس جدید منتقل کرده و از خطای ۴۰۴ جلوگیری کنید.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
# ریدایرکت ۳۰۱ تکی آدرس قدیمی به آدرس جدید
Redirect 301 /old-slug-url/ https://example.com/new-slug-url/
۴۳۰ 1405/06/29
APACHE پیکربندی .htaccess Rewrite Rule

کد انتقال خودکار HTTP به HTTPS در وب‌سرور آپاچی (.htaccess)

کد بازنویسی mod_rewrite را در ابتدای فایل .htaccess قرار دهید تا تمام ترافیک به پورت امن 443 و آدرس https:// هدایت شود. این ریدایرکت با کد 301 انجام شده و سئو را حفظ می‌کند.

متوسط (Medium Risk) مبتدی (Easy)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
۷۴ 1405/06/29
PHP ووکامرس (WooCommerce) Posts Clauses Filter

انتقال خودکار محصولات ناموجود به انتهای لیست در ووکامرس (Sort Out-of-Stock Products Last)

با فیلتر `posts_clauses` در کوئری اصلی ووکامرس، شرط مرتب‌سازی را طوری تغییر دهید که اقلام دارای موجودی اول و ناموجودها در آخر قرار گیرند.

متوسط (Medium Risk) پیشرفته (Hard)
<?php
/**
 * انتقال خودکار محصولات ناموجود به انتهای لیست در کاتالوگ فروشگاه و دسته‌بندی‌ها
 */
function bisco_sort_out_of_stock_products_last( $posts_clauses, $query ) {
    // تنها در فرانت‌اند و در کوئری اصلی آرشیو فروشگاه اعمال شود
    if ( ! is_admin() && $query->is_main_query() && ( is_shop() || is_product_taxonomy() ) ) {
        global $wpdb;

        $posts_clauses['join'] .= " LEFT JOIN {$wpdb->postmeta} AS bisco_stock ON ({$wpdb->posts}.ID = bisco_stock.post_id AND bisco_stock.meta_key = '_stock_status') ";
        $posts_clauses['orderby'] = " CASE WHEN bisco_stock.meta_value = 'outofstock' THEN 1 ELSE 0 END ASC, " . $posts_clauses['orderby'];
    }

    return $posts_clauses;
}
add_filter( 'posts_clauses', 'bisco_sort_out_of_stock_products_last', 2000, 2 );
۳۸۲ 1405/06/29

سبد خرید شما

0 افزونه

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

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

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

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

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

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