Transients (ok)
https://developer.wordpress.org/apis/handbook/transients/
Overview
Trang này chứa tài liệu kỹ thuật của WordPress Transient API, cung cấp một cách đơn giản và chuẩn hóa để lưu trữ dữ liệu được lưu trong bộ nhớ cache tạm thời trong cơ sở dữ liệu bằng cách đặt tên tùy chỉnh và khung thời gian mà sau đó nó sẽ hết hạn và bị xóa.
API chuyển tiếp rất giống với API tùy chọn nhưng được bổ sung thêm tính năng thời gian hết hạn, giúp đơn giản hóa quá trình sử dụng bảng cơ sở dữ liệu wp_options để lưu trữ tạm thời thông tin đã lưu trong bộ nhớ cache.
Lưu ý rằng các hàm “site_” về cơ bản giống với các hàm đối tác của chúng, nhưng hoạt động trên toàn mạng khi sử dụng WordPress Multisite.
Cũng cần lưu ý rằng Chuyển đổi vốn được tăng tốc bằng các plugin bộ nhớ đệm, trong khi Tùy chọn thông thường thì không. Ví dụ, một plugin memcached sẽ làm cho WordPress lưu trữ các giá trị tạm thời trong bộ nhớ nhanh thay vì trong cơ sở dữ liệu. Vì lý do này, quá trình chuyển đổi nên được sử dụng để lưu trữ bất kỳ dữ liệu nào dự kiến sẽ hết hạn hoặc có thể hết hạn bất cứ lúc nào. Các quá trình chuyển đổi cũng không bao giờ được giả định là có trong cơ sở dữ liệu, vì chúng có thể không được lưu trữ ở đó.
Hơn nữa, có thể tạm thời không có sẵn trước thời gian hết hạn. Giống như những gì được thực hiện với bộ nhớ đệm, mã của bạn phải có phương pháp dự phòng để tạo lại dữ liệu nếu quá trình tạm thời không khả dụng.
Function Reference #Function Reference
Set/Get Transient:
Delete Transient:
Using Transients
Saving Transients
To save a transient you use set_transient():
So for example to save the $special_query_results
object for 12 hours you would do:
Using Time Constants
In WordPress 3.5, several constants were introduced to easily express time:
So for example, the code sample from above can be simplified to:
Fetching Transients
To get a saved transient you use get_transient():
$transient
: the unique slug used while saving the transient with set_transient()
.
In our case we could fetch our special query results with:
Nếu quá trình tạm thời không tồn tại hoặc đã hết hạn, thì get_transient () sẽ trả về false. Điều này nên được kiểm tra bằng cách sử dụng toán tử nhận dạng === thay vì toán tử bình đẳng thông thường ==, vì giá trị số nguyên bằng 0 (hoặc dữ liệu "trống" / "falsey" khác) có thể là dữ liệu bạn muốn lưu trữ. Do giá trị "false" này, không nên sử dụng quá độ để giữ các giá trị boolean thuần túy (true / false). Đặt chúng vào một mảng hoặc chuyển đổi chúng thành số nguyên.
Example usage:
Đoạn mã trên sẽ lấy tạm thời và đặt nó vào $value. Mã bên trong khối if chỉ chạy khi không có một đoạn tạm thời hợp lệ để nó lấy. Đây thường là một phương pháp để tạo lại giá trị tạm thời thông qua các phương tiện khác. Xin lưu ý rằng có thể thời gian tạm thời không khả dụng trước thời gian hết hạn thông thường.
Removing Saved Transients
Tính năng tạm thời của chúng ta sẽ tự nhiên chết vì tuổi già sau khi $ hết hạn giây trôi qua kể từ lần cuối chúng ta chạy set_transient (), nhưng chúng ta có thể buộc tạm thời chết sớm bằng cách xóa nó theo cách thủ công. Điều này hữu ích cho những thời điểm khi một hoạt động nhất định (lưu bài đăng, thêm danh mục, v.v.) sẽ làm cho dữ liệu được lưu trong bộ nhớ cache đã cũ và cần cập nhật.
$transient
: the unique name used when saving with set_transient()
.
In our case, obviously, this would be:
WordPress không thường xuyên dọn dẹp các quá trình chuyển tiếp đã hết hạn. Để ngăn quá trình chuyển tiếp đã hết hạn tích tụ trong cơ sở dữ liệu, một phương pháp hay là luôn xóa tạm thời của bạn sau khi bạn đã hoàn tất và không cần nữa.
Complete Example
Putting it all together here is an example of how to use transients in your code.
And an example of using delete_transient(). In this case we’ll add a function to the edit_term
action, which will run every time a category or tag is edited (i.e. we’re assuming that the editing of a term invalidates our data and we want to remove the cached version).
Use transients with WP_Query to retrieve “featured posts”:
Việc sử dụng chuyển tiếp trong các plugin và chủ đề của bạn rất đơn giản và chỉ thêm một vài dòng mã bổ sung, nhưng nếu được sử dụng trong các tình huống phù hợp (truy vấn cơ sở dữ liệu dài / đắt tiền hoặc dữ liệu được xử lý phức tạp), nó có thể tiết kiệm vài giây thời gian tải trên trang web của bạn.
Last updated