Tăng tốc cho WordPress với Transients API

Tăng tốc cho WordPress là công việc thiết yếu chúng ta cần phải thực hiện để cải thiện tốc độ tải trang, giúp cho người dùng xem bài viết trên blog được dễ hơn và các công cụ tìm kiếm cũng yêu thích các nội dung có thời gian load ngắn. Bài viết này mình sẽ hướng dẫn cho các bạn cách tăng tốc cho những website đang sử dụng mã nguồn WordPress với Transients API.

WordPress Transients API

Transients API là tính năng rất tuyệt vời mà WordPress cung cấp cho người dùng, nhằm tạo ra các giá trị tạm thời để lưu vào trong cơ sở dữ liệu. Bạn có thể lưu bất kỳ thứ gì vào cơ sở dữ liệu thông qua Transients API, sau một thời gian nhất định nào đó thì giá trị của bạn lưu sẽ được cập nhật lại hoặc xóa đi. Mục đích của Transients API là giúp cho các nhà phát triển giao diện và plugin có cơ chế để lưu cache, giúp cho giao diện và plugin hoạt động nhanh hơn. Ngoài bài viết này thì bạn cũng có thể áp dụng các thủ thuật trong bài viết Tăng tốc cho WordPress đã được đăng trước đó trên website Học WordPress.

Có thể đối với những trang blog nhỏ, có nội dung ít thì bạn sẽ không thấy được trang chạy nhanh hay chậm, nhưng đối với các blog có dung lượng vài chục MB hoặc vài GB thì việc tiết kiệm vài mili giây cho mỗi lần truy vấn cũng là nhiều rồi. Đối với Transients API thì bạn sẽ quan tâm tới những hàm như sau:

Đối với những bạn dùng WordPress Multisite thì các bạn cần tham khảo thêm các hàm:

Ví dụ bên dưới sẽ giúp bạn lưu giá trị vào cơ sở dữ liệu trong vòng 12 giờ với tên là special_query_results, giá trị là giá trị của biến $special_query_results:

set_transient( 'special_query_results', $special_query_results, 60*60*12 );

Ngoài việc khai báo thời gian như bên trên, bạn có thể sử dụng các hằng số đã được WordPress khai báo sẵn:

MINUTE_IN_SECONDS  = 60 (seconds)
HOUR_IN_SECONDS    = 60 * MINUTE_IN_SECONDS
DAY_IN_SECONDS     = 24 * HOUR_IN_SECONDS
WEEK_IN_SECONDS    = 7 * DAY_IN_SECONDS
YEAR_IN_SECONDS    = 365 * DAY_IN_SECONDS

Như ví dụ bên trên, bạn có thể lưu giá trị trong vòng 12 giờ bằng cách sử dụng hằng số do WordPress khai báo sẵn:

set_transient( 'special_query_results', $special_query_results, 12 * HOUR_IN_SECONDS );

Nếu bạn đã nắm được cách hoạt động của một transient rồi thì bạn có thể áp dụng vào trong các hàm truy vấn để lưu cache, mỗi khi client yêu cầu nhận dữ liệu thì hệ thống sẽ trả về giá trị cache lưu trong cơ sở dữ liệu chứ không phải là thực hiện một truy vấn mới.

<?php
// Get any existing copy of our transient data
if ( false === ( $special_query_results = get_transient( 'special_query_results' ) ) ) {
    // It wasn't there, so regenerate the data and save the transient
     $special_query_results = new WP_Query( 'cat=5&order=random&tag=tech&post_meta_key=thumbnail' );
     set_transient( 'special_query_results', $special_query_results, 12 * HOUR_IN_SECONDS );
}

// Use the data like you would have normally...
?>

Qua bài viết này thì bạn đã có thể hiểu được cách hoạt động của Transients API giúp tăng tốc độ cho WordPress hoặc là tạo các biến lưu tạm thời để giúp cho mục đích truyền biến giữa các trang, bạn có thể áp dụng vào giao diện và plugin để cải thiện tốc độ tải trang trên blog nhé. Chúc bạn thành công.

Gửi bình luận của bạn

Gửi bình luận

Địa chỉ email của bạn sẽ được giữ bí mật. Những mục bắt buộc được đánh dấu *