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

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

۱۰۰ قطعه کد آماده ۴۰۵۴۸ بار استفاده و کپی شده ۱۰۰٪ تست‌شده و ایمن
فضای کار توسعه و مهندسی کد استودیو بیسکو وب
PHP امنیت و هاردنینگ (Security) Filter Hook (rest_authentication_errors)

محدود کردن دسترسی به REST API برای کاربران مهمان در وردپرس (Restrict REST API)

با فیلتر `rest_authentication_errors`، کاربرانی که لاگین نکرده‌اند را با خطای ۴۰۱ یا WP_Error مسدود کنید.

متوسط (Medium Risk) متوسط (Medium)
<?php
/**
 * محدودسازی دسترسی به REST API تنها برای کاربران وارد شده به سایت
 */
function bisco_restrict_rest_api_to_logged_in_users( $access ) {
    // در صورت وجود خطای قبلی، همان خطا بازگردانده شود
    if ( is_wp_error( $access ) ) {
        return $access;
    }

    // اگر کاربر وارد نشده بود، دسترسی مسدود گردد
    if ( ! is_user_logged_in() ) {
        return new WP_Error(
            'rest_cannot_access',
            'دسترسی به رابط برنامه‌نویسی تنها برای کاربران احراز هویت شده مجاز است.',
            array( 'status' => rest_authorization_required_code() )
        );
    }

    return $access;
}
add_filter( 'rest_authentication_errors', 'bisco_restrict_rest_api_to_logged_in_users' );
۴۷۰ 1405/06/29
APACHE افزایش سرعت و پرفورمنس Compression Directive

کد فعال‌سازی فشرده‌سازی Gzip در وب‌سرور آپاچی (.htaccess)

این کد ماژول mod_deflate را در آپاچی برای انواع داده‌های متنی فعال کرده و خروجی را پیش از ارسال به مرورگر به صورت Gzip فشرده می‌کند.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<IfModule mod_deflate.c>
# فشرده‌سازی خروجی فایل‌های متنی و اسکریپتی با Gzip
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE font/otf
</IfModule>
۴۷۵ 1405/06/29
PHP وردپرس (WordPress) REST API Controller

ساخت اندپوینت اختصاصی در REST API وردپرس (Custom REST API Endpoint)

با تابع `register_rest_route` در اکشن `rest_api_init` یک اندپوینت GET با اعتبارسنجی ورودی‌ها بسازید.

متوسط (Medium Risk) پیشرفته (Hard)
<?php
/**
 * ایجاد اندپوینت اختصاصی در REST API برای دریافت خلاصه آمار سایت
 * آدرس اندپوینت: /wp-json/bisco/v1/stats
 */
function bisco_register_custom_rest_route() {
    register_rest_route( 'bisco/v1', '/stats', array(
        'methods'             => WP_REST_Server::READABLE, // متد GET
        'callback'            => 'bisco_get_site_stats_callback',
        'permission_callback' => '__return_true', // اجازه دسترسی عمومی
    ) );
}
add_action( 'rest_api_init', 'bisco_register_custom_rest_route' );

function bisco_get_site_stats_callback( WP_REST_Request $request ) {
    $published_posts = wp_count_posts( 'post' )->publish;
    $comments_count  = wp_count_comments()->approved;

    $response = array(
        'status'          => 'success',
        'published_posts' => (int) $published_posts,
        'total_comments'  => (int) $comments_count,
        'timestamp'       => current_time( 'timestamp' ),
    );

    return new WP_REST_Response( $response, 200 );
}
۳۶۴ 1405/06/29
PHP ووکامرس (WooCommerce) Filter Hook (woocommerce_quantity_input_max)

تعیین حداکثر تعداد خرید مجاز محصول در ووکامرس (Maximum Product Quantity)

با فیلتر `woocommerce_quantity_input_max` حداکثر سفارش مجاز (مثلاً حداکثر ۲ عدد در هر سفارش) را قفل کنید.

متوسط (Medium Risk) متوسط (Medium)
<?php
/**
 * محدودسازی حداکثر تعداد سفارش هر محصول در سبد خرید به ۲ عدد
 */
function bisco_set_maximum_product_quantity( $max, $product ) {
    // سقف خرید برای هر فاکتور ۲ عدد
    return 2;
}
add_filter( 'woocommerce_quantity_input_max', 'bisco_set_maximum_product_quantity', 10, 2 );
۳۲۶ 1405/06/29

غیرفعال کردن اسکریپت امبد وردپرس (Disable oEmbed)

با قرار دادن کد زیر در functions.php، فایل wp-embed.min.js کاملاً لغو ثبت شده و درخواست اضافه حذف می‌گردد.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * غیرفعال‌سازی اسکریپت wp-embed و فیلترهای تعبیه‌سازی خودکار
 */
function bisco_disable_embeds() {
    // لغو ثبت اسکریپت wp-embed در فرانت
    wp_deregister_script( 'wp-embed' );

    // حذف اندپوینت‌های REST API مربوط به امبد
    remove_action( 'rest_api_init', 'wp_oembed_register_rest_route' );

    // فیلتر کردن کش oEmbed
    add_filter( 'embed_oembed_discover', '__return_false' );

    // حذف متاتگ‌های کشف امبد در هدر
    remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
    remove_action( 'wp_head', 'wp_oembed_add_host_js' );
}
add_action( 'init', 'bisco_disable_embeds', 9999 );
۲۰۷ 1405/06/29

غیرفعال کردن کرون جاب پیش‌فرض وردپرس (DISABLE_WP_CRON)

با قرار دادن `define('DISABLE_WP_CRON', true);` در wp-config.php، کرون وابسته به بازدید خاموش شده و می‌توانید آن را به کرون واقعی لینوکس در هاست بسپارید.

متوسط (Medium Risk) متوسط (Medium)
/**
 * غیرفعال‌سازی کرون خودکار وابسته به ترافیک بازدیدکنندگان
 * برای سپردن اجرای وظایف به سیستم‌عامل سرور (Real Server Cron)
 */
define( 'DISABLE_WP_CRON', true );
۷۲۵ 1405/06/29

پیش‌واکشی دی‌ان‌اس دامنه‌های خارجی در وردپرس (DNS Prefetch)

با فیلتر wp_resource_hints دامنه‌های سرویس‌های آنالیتیکس یا درگاه را در هدر با rel=dns-prefetch معرفی کنید.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * افزودن دامنه‌های شخص ثالث به لیست پیش‌واکشی DNS در وردپرس
 */
function bisco_dns_prefetch_domains( $urls, $relation_type ) {
    if ( 'dns-prefetch' === $relation_type ) {
        $urls[] = 'https://www.googletagmanager.com';
        $urls[] = 'https://analytics.google.com';
        $urls[] = 'https://stats.wp.com';
    }
    return $urls;
}
add_filter( 'wp_resource_hints', 'bisco_dns_prefetch_domains', 10, 2 );
۴۴ 1405/06/29

غیرفعال‌سازی نمایش لیست فایل‌ها و دایرکتوری‌ها (Disable Directory Listing)

با قرار دادن دستور Options -Indexes در فایل .htaccess، دسترسی به فهرست پوشه‌ها مسدود شده و خطای 403 Forbidden برگردانده می‌شود.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
# جلوگیری از نمایش لیست فایل‌های پوشه‌ها
Options -Indexes
۱۸۴ 1405/06/29

ایجاد اتصال زودهنگام به دامنه‌های خارجی با Preconnect در وردپرس

با قرار دادن کد زیر در functions.php، مرورگر کاربر پیش از رسیدن به اسکریپت اصلی، اتصال امن را با دامنه‌های خارجی کلیدی برقرار می‌سازد.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * برقراری اتصال زودهنگام Preconnect به دامنه‌های خارجی حیاتی
 */
function bisco_resource_hints_preconnect( $urls, $relation_type ) {
    if ( 'preconnect' === $relation_type ) {
        // دامنه CDN استاتیک یا سرور فونت
        $urls[] = array(
            'href' => 'https://cdn.example.com',
            'crossorigin' => 'anonymous',
        );
        $urls[] = array(
            'href' => 'https://fonts.gstatic.com',
            'crossorigin' => 'anonymous',
        );
    }
    return $urls;
}
add_filter( 'wp_resource_hints', 'bisco_resource_hints_preconnect', 10, 2 );
۳۶۰ 1405/06/29
PHP سئو تکنیکال (Technical SEO) Schema Generator Hook

اسکیمای ساختاریافته مقاله و خبر در وردپرس (Article Schema JSON-LD)

با درج داده‌های عنوان، تاریخ‌ها و مشخصات نویسنده در قالب اسکیمای `Article` در هک `wp_head` برای مقالات، تأییدیه کامل گوگل را دریافت کنید.

پایین و بی‌خطر (Low Risk) متوسط (Medium)
<?php
/**
 * تولید خودکار اسکیمای غنی مقاله (Article) با فرمت مدرن JSON-LD
 */
function bisco_output_article_schema() {
    if ( ! is_single() || 'post' !== get_post_type() ) {
        return;
    }

    global $post;
    $author_id = $post->post_author;
    $thumbnail_url = has_post_thumbnail( $post->ID ) ? get_the_post_thumbnail_url( $post->ID, 'full' ) : home_url( '/default-share.jpg' );

    $schema = array(
        '@context'         => 'https://schema.org',
        '@type'            => 'Article',
        'mainEntityOfPage' => array(
            '@type' => 'WebPage',
            '@id'   => esc_url( get_permalink( $post ) ),
        ),
        'headline'         => esc_html( get_the_title( $post ) ),
        'image'            => array(
            esc_url( $thumbnail_url ),
        ),
        'datePublished'    => get_the_date( 'c', $post ),
        'dateModified'     => get_the_modified_date( 'c', $post ),
        'author'           => array(
            '@type' => 'Person',
            'name'  => esc_html( get_the_author_meta( 'display_name', $author_id ) ),
            'url'   => esc_url( get_author_posts_url( $author_id ) ),
        ),
        'publisher'        => array(
            '@type' => 'Organization',
            'name'  => get_bloginfo( 'name' ),
            'logo'  => array(
                '@type' => 'ImageObject',
                'url'   => esc_url( home_url( '/logo.png' ) ),
            ),
        ),
        'description'      => esc_html( wp_strip_all_tags( get_the_excerpt( $post ) ) ),
    );

    echo '<script type="application/ld+json">' . wp_json_encode( $schema, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ) . '</script>' . "
";
}
add_action( 'wp_head', 'bisco_output_article_schema', 4 );
۵۲۰ 1405/06/29

حذف شماره نسخه وردپرس از سورس کدهای صفحه (Remove WordPress Generator)

با حذف اکشن wp_generator و فیلتر کردن خروجی در functions.php، شماره نسخه وردپرس از سورس، فیدها و فایل‌های استاتیک محو می‌شود.

پایین و بی‌خطر (Low Risk) مبتدی (Easy)
<?php
/**
 * حذف متاتگ ژنراتور و شماره نسخه وردپرس از هدر و فیدها
 */
remove_action( 'wp_head', 'wp_generator' );
add_filter( 'the_generator', '__return_empty_string' );

// حذف نسخه وردپرس از کوئری‌استرینگ فایل‌های استایل و اسکریپت
function bisco_remove_wp_version_strings( $src ) {
    if ( strpos( $src, 'ver=' . get_bloginfo( 'version' ) ) ) {
        $src = remove_query_arg( 'ver', $src );
    }
    return $src;
}
add_filter( 'style_loader_src', 'bisco_remove_wp_version_strings', 9999 );
add_filter( 'script_loader_src', 'bisco_remove_wp_version_strings', 9999 );
۵۲۹ 1405/06/29

کد تنظیم هدر امنیتی Permissions-Policy در فایل htaccess

با این دستور دسترسی اسکریپت‌های متفرقه یا آی‌فریم‌های جاسازی‌شده به امکانات سخت‌افزاری کاربر مسدود می‌شود.

پایین و بی‌خطر (Low Risk) متوسط (Medium)
<IfModule mod_headers.c>
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=()"
</IfModule>
۱۴۵ 1405/06/29

سبد خرید شما

0 افزونه

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

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

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

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

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

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