Hàm wp_load_alloptions() chạy quá lâu

Discussion in 'Hỏi Đáp Kỹ Thuật' started by Le Hieu, Oct 22, 2019.

Tags:
  1. Le Hieu

    Le Hieu Sơ Nhập Giang Hồ

    Mọi người ơi cho em hỏi, em ngồi tối ưu lại site chạy woocommerce thì còn lại đúng 1 hàm wp_load_alloptions() nó chạy lâu quá toàn 3-4s có lúc thì nó lại xuống 0.1s không biết có cách nào cache lại hay là làm cho nó chạy nhanh hơn k ạ? {cry}{cry} Em đã đánh index cái cột autoload trong database rồi những thấy vẫn không ăn thua.
     
  2. Dang

    Dang Bang Chúng

    Sao bạn không dùng get_option - cần tới đâu load tới đó, chứ nhiều cái đã load rồi bạn load lại tất cả nữa nên nặng. Tùy theo nhu cầu của bạn, bên dưới là đề xuất của mình :

    PHP:
    <?php

    if (file_exists($file __DIR__ '/.alloptions.cache'))
    {
        
    $alloptions json_decode(file_get_contents($file));
    }
    else
    {
        
    $alloptions wp_load_alloptions();
        @
    file_put_contents($filejson_encode($alloptions));
    }

    ?>
     
    Le Hieu likes this.
  3. Le Hieu

    Le Hieu Sơ Nhập Giang Hồ

    Cái hàm đấy của mình nó nằm trong file option.php (wp-include/option.php) vậy thì mình cần sửa ở đâu trong code đấy theo cách của bác nhỉ? {haha}
     
  4. Dang

    Dang Bang Chúng

    Cập nhật trong theme của bạn chớ! Lỗi phát sinh nếu bạn cập nhật wp-include/option.php khi WP update core. Còn hàm wp_load_alloptions sẽ trả về array, bạn thế chỗ đoạn nào trong theme của bạn đó!
     
    Le Hieu likes this.
  5. Le Hieu

    Le Hieu Sơ Nhập Giang Hồ

    Mình cảm ơn để mình tìm và thay {beauty}