
Seraphinite Accelerator là một công cụ mạnh mẽ giúp tối ưu hóa tốc độ của trang web WordPress và quản lý bộ nhớ đệm. Bài viết này sẽ đề cập đến cách xóa bộ nhớ đệm đã được tạo ra bằng cách sử dụng API.
Tại COOSS.NET, khi viết bài bằng tiếng Hàn, chúng tôi đã tạo một hàm để thực hiện việc dịch trong tệp functions.php của giao diện, và tự động thực hiện. Trên các trang đã được dịch, một liên kết để chọn ngôn ngữ khác sẽ được tạo ra. Tuy nhiên, đã có một vấn đề là khi bài viết đầu tiên được Accelerator lưu vào bộ nhớ đệm mà không có trang đã được dịch, thì mặc dù có trang đã được dịch, liên kết đến trang dịch sẽ không hiển thị trên trang đã được lưu vào bộ nhớ đệm.
Tất nhiên, có thể thiết lập để Accelerator tự động làm mới bộ nhớ đệm theo định kỳ, nhưng chỉ cần làm mới các trang đã được dịch. Việc thay đổi cài đặt mỗi lần cho điều này là bất tiện, và việc làm lại bộ nhớ đệm cho toàn bộ trang web thì không hiệu quả, vì vậy tôi đã tìm kiếm một API để buộc tạo lại bộ nhớ đệm của trang gốc khi việc dịch hoàn tất.
Tổng quan về API Seraphinite Accelerator
Seraphinite Accelerator cung cấp các chức năng API như sau.
OperateCache – Quản lý bộ nhớ đệm
Có thể xóa hoặc tái tạo bộ nhớ đệm của một trang cụ thể.
GetCacheStatus – Kiểm tra trạng thái bộ nhớ đệm
Có thể kiểm tra xem một URL cụ thể có đang được lưu vào bộ nhớ đệm hay không.
API quản lý bộ nhớ đệm (OperateCache)
Hàm OperateCache có thể xóa hoặc tái tạo bộ nhớ đệm của một URL cụ thể khi cần.
Cách sử dụng
seraph_accelAPI::OperateCache( $op, $obj );
Giải thích tham số
- $op (Tùy chọn quản lý bộ nhớ đệm)
- CACHE_OP_REVALIDATE → Tái xác thực bộ nhớ đệm (Revalidate)
- CACHE_OP_CHECK_REVALIDATE → Tái xác thực bộ nhớ đệm khi cần
- CACHE_OP_CLEAR → Dọn dẹp bộ nhớ đệm cũ
- CACHE_OP_DEL → Xóa bộ nhớ đệm
- CACHE_OP_SRVDEL → Xóa bộ nhớ đệm của máy chủ (nếu có thể)
- $obj (URL hoặc đường dẫn tương đối để xóa)
- Nhập URL để chỉ xóa bộ nhớ đệm của một trang cụ thể
- Nhập null để xóa bộ nhớ đệm của toàn bộ trang
Ví dụ xóa bộ nhớ đệm
Xóa bộ nhớ đệm của một trang cụ thể
seraph_accelAPI::OperateCache( seraph_accelAPI::CACHE_OP_DEL, '/mypage/' );
Xóa bộ nhớ đệm của toàn bộ trang
seraph_accelAPI::OperateCache( seraph_accelAPI::CACHE_OP_DEL, null );
Xóa bộ nhớ đệm của nhiều URL
$urls = ['/category/wordpress/', '/tag/performance/', '/custom-post-type/my-post/'];
foreach ($urls as $url) {
seraph_accelAPI::OperateCache( seraph_accelAPI::CACHE_OP_DEL, $url );
}
API kiểm tra trạng thái bộ nhớ đệm (GetCacheStatus)
Có thể kiểm tra xem một URL cụ thể có đang được lưu vào bộ nhớ đệm hay không, và liệu tối ưu hóa bộ nhớ đệm đã được áp dụng hay chưa.
Cách sử dụng
$cache_status = seraph_accelAPI::GetCacheStatus($obj, $headers = []);
Giải thích tham số
- $obj → URL để kiểm tra
- $headers (tùy chọn) → Có thể truyền các tiêu đề HTTP cụ thể để kiểm tra bộ nhớ đệm
- Ví dụ: ‘User-Agent’ => ‘AppleWebKit/9999999.99 Mobile’
Giá trị trả về
Thuộc tính | Giá trị | Ý nghĩa |
---|---|---|
cache | true | Trang này đã được lưu vào bộ nhớ đệm |
cache | false | Trang này chưa được lưu vào bộ nhớ đệm |
optimization | true | Bộ nhớ đệm đã được tối ưu hóa |
optimization | false | Bộ nhớ đệm chưa được tối ưu hóa |
optimization | null | Không có bộ nhớ đệm |
status | 'done' | Hoàn tất việc lưu vào bộ nhớ đệm |
status | 'revalidating' | Đang tái tạo bộ nhớ đệm |
status | 'pending' | Đang chờ xử lý bộ nhớ đệm |
status | 'none' | Chưa được xử lý |
Ví dụ kiểm tra trạng thái bộ nhớ đệm
$cache_status = seraph_accelAPI::GetCacheStatus('https://example.com/mypage/');
if ($cache_status['cache']) {
echo 'Trang đã được lưu vào bộ nhớ đệm.';
} else {
echo 'Trang chưa được lưu vào bộ nhớ đệm.';
}
Tạo hàm xóa bộ nhớ đệm cho danh sách URL cụ thể
Có thể viết một hàm để xóa bộ nhớ đệm của nhiều URL cùng một lúc.
Hàm xóa bộ nhớ đệm
function sa_clear_cache_for_urls($urls = []) {
if (!class_exists('seraph_accelAPI')) {
error_log('API Seraphinite Accelerator chưa được tải.');
return false;
}
if (!is_array($urls) || empty($urls)) {
error_log('Danh sách URL hợp lệ không được cung cấp.');
return false;
}
foreach ($urls as $url) {
if (!empty($url)) {
seraph_accelAPI::OperateCache(seraph_accelAPI::CACHE_OP_DEL, $url);
error_log('Đã xóa bộ nhớ đệm: ' . $url);
}
}
return true;
}
Ví dụ sử dụng
$urls_to_clear = [
'/category/wordpress/',
'/tag/performance/',
'/custom-post-type/my-post/',
'/',
];
sa_clear_cache_for_urls($urls_to_clear);
Bằng cách định nghĩa hàm như trên, bạn có thể truyền địa chỉ trang gốc của bài viết vào hàm khi việc dịch hoàn tất để làm mới nội dung đã được lưu vào bộ nhớ đệm (sau khi xóa, nội dung sẽ được làm mới khi trang được hiển thị hoặc tại thời điểm đã được thiết lập trong cài đặt của Accelerator).