اگر سایت فروشگاهی بر پایه وردپرس و ووکامرس دارید، می‌دانید که اسکریپت‌ها و استایل‌های ووکامرس در تمامی صفحات به طور خودکار لود می‌شوند. این موضوع باعث می‌شود تا سرعت بارگذاری سایت کاهش یابد. بهترین راه برای حل این مشکل، این است که اسکریپت‌ها و استایل‌های ووکامرسی فقط در صفحات فروشگاه بارگذاری شده و در صفحات غیر فروشگاهی بارگذاری نشود. در این نوشته قصد داریم حذف کتابخانه‌های ووکامرس از برگه‌های غیر فروشگاهی را به شما آموزش دهیم.

افزایش سرعت سایت با حذف اسکریپت‌های ووکامرس در صفحات غیر فروشگاهی

روش اوّل : تابع حذف اسکریپت‌ها و استایل‌های ووکامرس

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

/**
 * @snippet       Remove Woocommerce Scripts & Styles In No-Shop Pages
 * @author        Rasool Vahdati
 * @testedwith    WooCommerce 6
 */
 
add_action( 'wp_enqueue_scripts', 'tidaweb_remove_woocommerce_scripts_styles_in_other_pages', 999 );
 
function tidaweb_remove_woocommerce_scripts_styles_in_other_pages()
{
    //remove generator meta tag
    remove_action( 'wp_head', array( $GLOBALS['woocommerce'], 'generator' ) );

    // first check that woo exists to prevent fatal errors
    if ( function_exists( 'is_woocommerce' ) )
    {
        // dequeue scripts and styles
        if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() )
        {
            // dequeue styles
            wp_dequeue_style( 'woocommerce_frontend_styles' );
            wp_dequeue_style( 'woocommerce-general' );
            wp_dequeue_style( 'woocommerce-layout' );
            wp_dequeue_style( 'woocommerce-smallscreen' );
            wp_dequeue_style( 'woocommerce_fancybox_styles' );
            wp_dequeue_style( 'woocommerce_chosen_styles' );
            wp_dequeue_style( 'woocommerce_prettyPhoto_css' );

            // dequeue scripts
            wp_dequeue_script( 'selectWoo' );
            wp_dequeue_script( 'wc-add-payment-method' );
            wp_dequeue_script( 'wc-lost-password' );
            wp_dequeue_script( 'wc_price_slider' );
            wp_dequeue_script( 'wc-single-product' );
            wp_dequeue_script( 'wc-add-to-cart' );
            wp_dequeue_script( 'wc-cart-fragments' );
            wp_dequeue_script( 'wc-credit-card-form' );
            wp_dequeue_script( 'wc-checkout' );
            wp_dequeue_script( 'wc-add-to-cart-variation' );
            wp_dequeue_script( 'wc-single-product' );
            wp_dequeue_script( 'wc-cart' );
            wp_dequeue_script( 'wc-chosen' );
            wp_dequeue_script( 'woocommerce' );
            wp_dequeue_script( 'prettyPhoto' );
            wp_dequeue_script( 'prettyPhoto-init' );
            wp_dequeue_script( 'jquery-blockui' );
            wp_dequeue_script( 'jquery-placeholder' );
            wp_dequeue_script( 'jquery-payment' );
            wp_dequeue_script( 'fancybox' );
            wp_dequeue_script( 'jqueryui' );
            wp_dequeue_script( 'js.cookie' );
        }
    }
}

کد بالا یک هوک به wp_enqueue_scripts اضافه می‌کند. در این کد تمامی اسکریپت‌ها و استایل‌ها به طور کامل در برگه‌های غیر فروشگاهی حذف می‌شوند. مدل دیگری از این کد در زیر آورده شده است که در قالب دو هوک wp_print_scripts و wp_print_styles به وردپرس اضافه شده و عملیات حذف را انجام می‌دهند.

/**
 * @snippet       Remove Woocommerce Scripts & Styles - Ver 2.0
 * @author        Rasool Vahdati
 * @testedwith    WooCommerce 6
 */
 
add_action( 'wp_print_styles', 'tidaweb_remove_woocommerce_styles_in_other_pages', 999 );
 
function tidaweb_remove_woocommerce_styles_in_other_pages()
{
    // first check that woo exists to prevent fatal errors
    if ( function_exists( 'is_woocommerce' ) )
    {
        // dequeue styles
        if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() )
        {
            wp_dequeue_style( 'woocommerce_frontend_styles' );
            wp_dequeue_style( 'woocommerce-general' );
            wp_dequeue_style( 'woocommerce-layout' );
            wp_dequeue_style( 'woocommerce-smallscreen' );
            wp_dequeue_style( 'woocommerce_fancybox_styles' );
            wp_dequeue_style( 'woocommerce_chosen_styles' );
            wp_dequeue_style( 'woocommerce_prettyPhoto_css' );
        }
    }
}

add_action( 'wp_print_scripts', 'tidaweb_remove_woocommerce_scripts_in_other_pages', 999 );
 
function tidaweb_remove_woocommerce_scripts_in_other_pages()
{
    // first check that woo exists to prevent fatal errors
    if ( function_exists( 'is_woocommerce' ) )
    {
        // dequeue scripts
        if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() )
        {
            wp_dequeue_script( 'selectWoo' );
            wp_dequeue_script( 'wc-add-payment-method' );
            wp_dequeue_script( 'wc-lost-password' );
            wp_dequeue_script( 'wc_price_slider' );
            wp_dequeue_script( 'wc-single-product' );
            wp_dequeue_script( 'wc-add-to-cart' );
            wp_dequeue_script( 'wc-cart-fragments' );
            wp_dequeue_script( 'wc-credit-card-form' );
            wp_dequeue_script( 'wc-checkout' );
            wp_dequeue_script( 'wc-add-to-cart-variation' );
            wp_dequeue_script( 'wc-single-product' );
            wp_dequeue_script( 'wc-cart' );
            wp_dequeue_script( 'wc-chosen' );
            wp_dequeue_script( 'woocommerce' );
            wp_dequeue_script( 'prettyPhoto' );
            wp_dequeue_script( 'prettyPhoto-init' );
            wp_dequeue_script( 'jquery-blockui' );
            wp_dequeue_script( 'jquery-placeholder' );
            wp_dequeue_script( 'jquery-payment' );
            wp_dequeue_script( 'fancybox' );
            wp_dequeue_script( 'jqueryui' );
            wp_dequeue_script( 'js.cookie' );
        }
    }
}

روش دوّم : نصب افزونه حذف اسکریپت‌ها و استایل‌های ووکامرس

افزایش سرعت سایت‌های ووکامرسی با افزونه Woocommerce Speed Drain Repair
افزایش سرعت سایت‌های ووکامرسی با افزونه Woocommerce Speed Drain Repair

افزونه Woocommerce Speed Drain Repair، افزونه‌ای است که با استفاده از آن می‌توان عملیات حذف اسکریپت‌ها و استایل‌های ووکامرس در برگه‌های غیر فروشگاهی را انجام داد و سرعت سایت فروشگاهی را افزایش داد. نمونه‌ای از عملکرد این افزونه قبل و بعد از نصب آن در تصویر زیر قابل مشاهده است.

نمایش وزن کل در برگه سبد خرید و تسویه حساب ووکامرس
تست افزایش سرعت سایت قبل و بعد از نصب افزونه Woocommerce Speed Drain Repair
تست افزایش سرعت سایت قبل و بعد از نصب افزونه

نتیجه

در این نوشته ترفند افزایش سرعت سایت‌های فروشگاهی با حذف اسکریپت‌ها و استایل‌های ووکامرس در برگه‌های غیر ووکامرسی توضیح داده شد. همانطور که گفته شد ووکامرس، کتابخانه‌ها و استایل‌های مرتبط با خود را به صورت پیش‌فرض در تمامی برگه‌ها بارگذاری می‌کند که همین موضوع باعث کاهش سرعت سایت می‌شود و شما با استفاده از راهکارهای ارائه شده به راحتی می‌توانید از بارگذاری آن‌ها در برگه‌هایی غیر از برگه‌های فروشگاه جلوگیری نمایید. در صورتی که سؤالی دارید، می‌توانید آن را از طریق دیدگاه‌ها با ما در میان بگذارید.

۴.۸/۵ - (۷۵ امتیاز)

یک نظر برای “حذف کتابخانه‌های ووکامرس از برگه‌های غیر فروشگاهی

  1. سمیرا میگوید:

    این روش واقعاً عالی و کاربردی هستش، وقتی استفاده کنی تازه متوجه میشی سرعت لود سایت به خصوص با ووکامرس چقدر افزایش پیدا میکنه . ممنون از شما بابت انتشار این مقاله 🙂

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *