{"id":2046,"date":"2025-03-18T16:21:48","date_gmt":"2025-03-18T07:21:48","guid":{"rendered":"https:\/\/cooss.net\/xoa-cache-bang-api-accelerator\/"},"modified":"2025-03-18T16:37:06","modified_gmt":"2025-03-18T07:37:06","slug":"xoa-cache-bang-api-accelerator","status":"publish","type":"post","link":"https:\/\/cooss.net\/vi\/xoa-cache-bang-api-accelerator\/","title":{"rendered":"X\u00f3a cache b\u1eb1ng API Accelerator"},"content":{"rendered":"\n<p>Seraphinite Accelerator l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 m\u1ea1nh m\u1ebd gi\u00fap t\u1ed1i \u01b0u h\u00f3a t\u1ed1c \u0111\u1ed9 c\u1ee7a trang web WordPress v\u00e0 qu\u1ea3n l\u00fd b\u1ed9 nh\u1edb \u0111\u1ec7m. B\u00e0i vi\u1ebft n\u00e0y s\u1ebd \u0111\u1ec1 c\u1eadp \u0111\u1ebfn c\u00e1ch x\u00f3a b\u1ed9 nh\u1edb \u0111\u1ec7m \u0111\u00e3 \u0111\u01b0\u1ee3c t\u1ea1o ra b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng API.<\/p>\n\n\n\n<p>T\u1ea1i COOSS.NET, khi vi\u1ebft b\u00e0i b\u1eb1ng ti\u1ebfng H\u00e0n, ch\u00fang t\u00f4i \u0111\u00e3 t\u1ea1o m\u1ed9t h\u00e0m \u0111\u1ec3 th\u1ef1c hi\u1ec7n vi\u1ec7c d\u1ecbch trong t\u1ec7p functions.php c\u1ee7a giao di\u1ec7n, v\u00e0 t\u1ef1 \u0111\u1ed9ng th\u1ef1c hi\u1ec7n. Tr\u00ean c\u00e1c trang \u0111\u00e3 \u0111\u01b0\u1ee3c d\u1ecbch, m\u1ed9t li\u00ean k\u1ebft \u0111\u1ec3 ch\u1ecdn ng\u00f4n ng\u1eef kh\u00e1c s\u1ebd \u0111\u01b0\u1ee3c t\u1ea1o ra. Tuy nhi\u00ean, \u0111\u00e3 c\u00f3 m\u1ed9t v\u1ea5n \u0111\u1ec1 l\u00e0 khi b\u00e0i vi\u1ebft \u0111\u1ea7u ti\u00ean \u0111\u01b0\u1ee3c Accelerator l\u01b0u v\u00e0o b\u1ed9 nh\u1edb \u0111\u1ec7m m\u00e0 kh\u00f4ng c\u00f3 trang \u0111\u00e3 \u0111\u01b0\u1ee3c d\u1ecbch, th\u00ec m\u1eb7c d\u00f9 c\u00f3 trang \u0111\u00e3 \u0111\u01b0\u1ee3c d\u1ecbch, li\u00ean k\u1ebft \u0111\u1ebfn trang d\u1ecbch s\u1ebd kh\u00f4ng hi\u1ec3n th\u1ecb tr\u00ean trang \u0111\u00e3 \u0111\u01b0\u1ee3c l\u01b0u v\u00e0o b\u1ed9 nh\u1edb \u0111\u1ec7m.<\/p>\n\n\n\n<p>T\u1ea5t nhi\u00ean, c\u00f3 th\u1ec3 thi\u1ebft l\u1eadp \u0111\u1ec3 Accelerator t\u1ef1 \u0111\u1ed9ng l\u00e0m m\u1edbi b\u1ed9 nh\u1edb \u0111\u1ec7m theo \u0111\u1ecbnh k\u1ef3, nh\u01b0ng ch\u1ec9 c\u1ea7n l\u00e0m m\u1edbi c\u00e1c trang \u0111\u00e3 \u0111\u01b0\u1ee3c d\u1ecbch. Vi\u1ec7c thay \u0111\u1ed5i c\u00e0i \u0111\u1eb7t m\u1ed7i l\u1ea7n cho \u0111i\u1ec1u n\u00e0y l\u00e0 b\u1ea5t ti\u1ec7n, v\u00e0 vi\u1ec7c l\u00e0m l\u1ea1i b\u1ed9 nh\u1edb \u0111\u1ec7m cho to\u00e0n b\u1ed9 trang web th\u00ec kh\u00f4ng hi\u1ec7u qu\u1ea3, v\u00ec v\u1eady t\u00f4i \u0111\u00e3 t\u00ecm ki\u1ebfm m\u1ed9t API \u0111\u1ec3 bu\u1ed9c t\u1ea1o l\u1ea1i b\u1ed9 nh\u1edb \u0111\u1ec7m c\u1ee7a trang g\u1ed1c khi vi\u1ec7c d\u1ecbch ho\u00e0n t\u1ea5t.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>T\u1ed5ng quan v\u1ec1 API Seraphinite Accelerator<\/strong><\/h2>\n\n\n\n<p>Seraphinite Accelerator cung c\u1ea5p c\u00e1c ch\u1ee9c n\u0103ng API nh\u01b0 sau.<\/p>\n\n\n\n<p><strong>OperateCache &#8211; Qu\u1ea3n l\u00fd b\u1ed9 nh\u1edb \u0111\u1ec7m<\/strong><br>C\u00f3 th\u1ec3 x\u00f3a ho\u1eb7c t\u00e1i t\u1ea1o b\u1ed9 nh\u1edb \u0111\u1ec7m c\u1ee7a m\u1ed9t trang c\u1ee5 th\u1ec3.<\/p>\n\n\n\n<p><strong>GetCacheStatus &#8211; Ki\u1ec3m tra tr\u1ea1ng th\u00e1i b\u1ed9 nh\u1edb \u0111\u1ec7m<\/strong><br>C\u00f3 th\u1ec3 ki\u1ec3m tra xem m\u1ed9t URL c\u1ee5 th\u1ec3 c\u00f3 \u0111ang \u0111\u01b0\u1ee3c l\u01b0u v\u00e0o b\u1ed9 nh\u1edb \u0111\u1ec7m hay kh\u00f4ng.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>API qu\u1ea3n l\u00fd b\u1ed9 nh\u1edb \u0111\u1ec7m (OperateCache)<\/strong><\/h2>\n\n\n\n<p>H\u00e0m OperateCache c\u00f3 th\u1ec3 x\u00f3a ho\u1eb7c t\u00e1i t\u1ea1o b\u1ed9 nh\u1edb \u0111\u1ec7m c\u1ee7a m\u1ed9t URL c\u1ee5 th\u1ec3 khi c\u1ea7n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">C\u00e1ch s\u1eed d\u1ee5ng<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>seraph_accelAPI::OperateCache( $op, $obj );<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Gi\u1ea3i th\u00edch tham s\u1ed1<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>$op (T\u00f9y ch\u1ecdn qu\u1ea3n l\u00fd b\u1ed9 nh\u1edb \u0111\u1ec7m)\n<ul class=\"wp-block-list\">\n<li>CACHE_OP_REVALIDATE \u2192 T\u00e1i x\u00e1c th\u1ef1c b\u1ed9 nh\u1edb \u0111\u1ec7m (Revalidate)<\/li>\n\n\n\n<li>CACHE_OP_CHECK_REVALIDATE \u2192 T\u00e1i x\u00e1c th\u1ef1c b\u1ed9 nh\u1edb \u0111\u1ec7m khi c\u1ea7n<\/li>\n\n\n\n<li>CACHE_OP_CLEAR \u2192 D\u1ecdn d\u1eb9p b\u1ed9 nh\u1edb \u0111\u1ec7m c\u0169<\/li>\n\n\n\n<li>CACHE_OP_DEL \u2192 X\u00f3a b\u1ed9 nh\u1edb \u0111\u1ec7m<\/li>\n\n\n\n<li>CACHE_OP_SRVDEL \u2192 X\u00f3a b\u1ed9 nh\u1edb \u0111\u1ec7m c\u1ee7a m\u00e1y ch\u1ee7 (n\u1ebfu c\u00f3 th\u1ec3)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>$obj (URL ho\u1eb7c \u0111\u01b0\u1eddng d\u1eabn t\u01b0\u01a1ng \u0111\u1ed1i \u0111\u1ec3 x\u00f3a)\n<ul class=\"wp-block-list\">\n<li>Nh\u1eadp URL \u0111\u1ec3 ch\u1ec9 x\u00f3a b\u1ed9 nh\u1edb \u0111\u1ec7m c\u1ee7a m\u1ed9t trang c\u1ee5 th\u1ec3<\/li>\n\n\n\n<li><strong>Nh\u1eadp null \u0111\u1ec3 x\u00f3a b\u1ed9 nh\u1edb \u0111\u1ec7m c\u1ee7a to\u00e0n b\u1ed9 trang<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">V\u00ed d\u1ee5 x\u00f3a b\u1ed9 nh\u1edb \u0111\u1ec7m<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><br>X\u00f3a b\u1ed9 nh\u1edb \u0111\u1ec7m c\u1ee7a m\u1ed9t trang c\u1ee5 th\u1ec3<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>seraph_accelAPI::OperateCache( seraph_accelAPI::CACHE_OP_DEL, '\/mypage\/' );<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">X\u00f3a b\u1ed9 nh\u1edb \u0111\u1ec7m c\u1ee7a to\u00e0n b\u1ed9 trang<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>seraph_accelAPI::OperateCache( seraph_accelAPI::CACHE_OP_DEL, null );<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">X\u00f3a b\u1ed9 nh\u1edb \u0111\u1ec7m c\u1ee7a nhi\u1ec1u URL<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>$urls = &#091;'\/category\/wordpress\/', '\/tag\/performance\/', '\/custom-post-type\/my-post\/'];\nforeach ($urls as $url) {\n    seraph_accelAPI::OperateCache( seraph_accelAPI::CACHE_OP_DEL, $url );\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">API ki\u1ec3m tra tr\u1ea1ng th\u00e1i b\u1ed9 nh\u1edb \u0111\u1ec7m (GetCacheStatus)<\/h3>\n\n\n\n<p>C\u00f3 th\u1ec3 ki\u1ec3m tra xem m\u1ed9t URL c\u1ee5 th\u1ec3 c\u00f3 \u0111ang \u0111\u01b0\u1ee3c l\u01b0u v\u00e0o b\u1ed9 nh\u1edb \u0111\u1ec7m hay kh\u00f4ng, v\u00e0 li\u1ec7u t\u1ed1i \u01b0u h\u00f3a b\u1ed9 nh\u1edb \u0111\u1ec7m \u0111\u00e3 \u0111\u01b0\u1ee3c \u00e1p d\u1ee5ng hay ch\u01b0a.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><br>C\u00e1ch s\u1eed d\u1ee5ng<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>$cache_status = seraph_accelAPI::GetCacheStatus($obj, $headers = &#091;]);<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><br>Gi\u1ea3i th\u00edch tham s\u1ed1<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>$obj \u2192 URL \u0111\u1ec3 ki\u1ec3m tra<\/li>\n\n\n\n<li>$headers (t\u00f9y ch\u1ecdn) \u2192 C\u00f3 th\u1ec3 truy\u1ec1n c\u00e1c ti\u00eau \u0111\u1ec1 HTTP c\u1ee5 th\u1ec3 \u0111\u1ec3 ki\u1ec3m tra b\u1ed9 nh\u1edb \u0111\u1ec7m\n<ul class=\"wp-block-list\">\n<li>V\u00ed d\u1ee5: &#8216;User-Agent&#8217; =&gt; &#8216;AppleWebKit\/9999999.99 Mobile&#8217;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Gi\u00e1 tr\u1ecb tr\u1ea3 v\u1ec1<\/h4>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Thu\u1ed9c t\u00ednh<\/th><th>Gi\u00e1 tr\u1ecb<\/th><th>\u00dd ngh\u0129a<\/th><\/tr><\/thead><tbody><tr><td><code>cache<\/code><\/td><td><code>true<\/code><\/td><td>Trang n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c l\u01b0u v\u00e0o b\u1ed9 nh\u1edb \u0111\u1ec7m<\/td><\/tr><tr><td><code>cache<\/code><\/td><td><code>false<\/code><\/td><td>Trang n\u00e0y ch\u01b0a \u0111\u01b0\u1ee3c l\u01b0u v\u00e0o b\u1ed9 nh\u1edb \u0111\u1ec7m<\/td><\/tr><tr><td><code>optimization<\/code><\/td><td><code>true<\/code><\/td><td>B\u1ed9 nh\u1edb \u0111\u1ec7m \u0111\u00e3 \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u h\u00f3a<\/td><\/tr><tr><td><code>optimization<\/code><\/td><td><code>false<\/code><\/td><td>B\u1ed9 nh\u1edb \u0111\u1ec7m ch\u01b0a \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u h\u00f3a<\/td><\/tr><tr><td><code>optimization<\/code><\/td><td><code>null<\/code><\/td><td>Kh\u00f4ng c\u00f3 b\u1ed9 nh\u1edb \u0111\u1ec7m<\/td><\/tr><tr><td><code>status<\/code><\/td><td><code>'done'<\/code><\/td><td>Ho\u00e0n t\u1ea5t vi\u1ec7c l\u01b0u v\u00e0o b\u1ed9 nh\u1edb \u0111\u1ec7m<\/td><\/tr><tr><td><code>status<\/code><\/td><td><code>'revalidating'<\/code><\/td><td>\u0110ang t\u00e1i t\u1ea1o b\u1ed9 nh\u1edb \u0111\u1ec7m<\/td><\/tr><tr><td><code>status<\/code><\/td><td><code>'pending'<\/code><\/td><td>\u0110ang ch\u1edd x\u1eed l\u00fd b\u1ed9 nh\u1edb \u0111\u1ec7m<\/td><\/tr><tr><td><code>status<\/code><\/td><td><code>'none'<\/code><\/td><td>Ch\u01b0a \u0111\u01b0\u1ee3c x\u1eed l\u00fd<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">V\u00ed d\u1ee5 ki\u1ec3m tra tr\u1ea1ng th\u00e1i b\u1ed9 nh\u1edb \u0111\u1ec7m<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>$cache_status = seraph_accelAPI::GetCacheStatus('https:\/\/example.com\/mypage\/');\nif ($cache_status&#091;'cache']) {\n    echo 'Trang \u0111\u00e3 \u0111\u01b0\u1ee3c l\u01b0u v\u00e0o b\u1ed9 nh\u1edb \u0111\u1ec7m.';\n} else {\n    echo 'Trang ch\u01b0a \u0111\u01b0\u1ee3c l\u01b0u v\u00e0o b\u1ed9 nh\u1edb \u0111\u1ec7m.';\n}<\/code><\/pre>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">T\u1ea1o h\u00e0m x\u00f3a b\u1ed9 nh\u1edb \u0111\u1ec7m cho danh s\u00e1ch URL c\u1ee5 th\u1ec3<\/h2>\n\n\n\n<p>C\u00f3 th\u1ec3 vi\u1ebft m\u1ed9t h\u00e0m \u0111\u1ec3 x\u00f3a b\u1ed9 nh\u1edb \u0111\u1ec7m c\u1ee7a nhi\u1ec1u URL c\u00f9ng m\u1ed9t l\u00fac.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">H\u00e0m x\u00f3a b\u1ed9 nh\u1edb \u0111\u1ec7m<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>function sa_clear_cache_for_urls($urls = &#091;]) {\n    if (!class_exists('seraph_accelAPI')) {\n        error_log('API Seraphinite Accelerator ch\u01b0a \u0111\u01b0\u1ee3c t\u1ea3i.');\n        return false;\n    }\n\n    if (!is_array($urls) || empty($urls)) {\n        error_log('Danh s\u00e1ch URL h\u1ee3p l\u1ec7 kh\u00f4ng \u0111\u01b0\u1ee3c cung c\u1ea5p.');\n        return false;\n    }\n\n    foreach ($urls as $url) {\n        if (!empty($url)) {\n            seraph_accelAPI::OperateCache(seraph_accelAPI::CACHE_OP_DEL, $url);\n            error_log('\u0110\u00e3 x\u00f3a b\u1ed9 nh\u1edb \u0111\u1ec7m: ' . $url);\n        }\n    }\n\n    return true;\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">V\u00ed d\u1ee5 s\u1eed d\u1ee5ng<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>$urls_to_clear = &#091;\n    '\/category\/wordpress\/',\n    '\/tag\/performance\/',\n    '\/custom-post-type\/my-post\/',\n    '\/',\n];\n\nsa_clear_cache_for_urls($urls_to_clear);<\/code><\/pre>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>B\u1eb1ng c\u00e1ch \u0111\u1ecbnh ngh\u0129a h\u00e0m nh\u01b0 tr\u00ean, b\u1ea1n c\u00f3 th\u1ec3 truy\u1ec1n \u0111\u1ecba ch\u1ec9 trang g\u1ed1c c\u1ee7a b\u00e0i vi\u1ebft v\u00e0o h\u00e0m khi vi\u1ec7c d\u1ecbch ho\u00e0n t\u1ea5t \u0111\u1ec3 l\u00e0m m\u1edbi n\u1ed9i dung \u0111\u00e3 \u0111\u01b0\u1ee3c l\u01b0u v\u00e0o b\u1ed9 nh\u1edb \u0111\u1ec7m (sau khi x\u00f3a, n\u1ed9i dung s\u1ebd \u0111\u01b0\u1ee3c l\u00e0m m\u1edbi khi trang \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb ho\u1eb7c t\u1ea1i th\u1eddi \u0111i\u1ec3m \u0111\u00e3 \u0111\u01b0\u1ee3c thi\u1ebft l\u1eadp trong c\u00e0i \u0111\u1eb7t c\u1ee7a Accelerator).<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Seraphinite Accelerator l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 m\u1ea1nh m\u1ebd gi\u00fap t\u1ed1i \u01b0u h\u00f3a t\u1ed1c \u0111\u1ed9 c\u1ee7a trang web WordPress v\u00e0 qu\u1ea3n l\u00fd b\u1ed9 nh\u1edb \u0111\u1ec7m. B\u00e0i vi\u1ebft n\u00e0y s\u1ebd \u0111\u1ec1 c\u1eadp \u0111\u1ebfn c\u00e1ch x\u00f3a b\u1ed9 nh\u1edb \u0111\u1ec7m \u0111\u00e3 \u0111\u01b0\u1ee3c t\u1ea1o ra b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng API. T\u1ea1i COOSS.NET, khi vi\u1ebft b\u00e0i b\u1eb1ng ti\u1ebfng H\u00e0n, ch\u00fang t\u00f4i [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[108],"tags":[],"class_list":["post-2046","post","type-post","status-publish","format-standard","hentry","category-accelerator-vi"],"_links":{"self":[{"href":"https:\/\/cooss.net\/vi\/wp-json\/wp\/v2\/posts\/2046","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cooss.net\/vi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cooss.net\/vi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cooss.net\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cooss.net\/vi\/wp-json\/wp\/v2\/comments?post=2046"}],"version-history":[{"count":0,"href":"https:\/\/cooss.net\/vi\/wp-json\/wp\/v2\/posts\/2046\/revisions"}],"wp:attachment":[{"href":"https:\/\/cooss.net\/vi\/wp-json\/wp\/v2\/media?parent=2046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cooss.net\/vi\/wp-json\/wp\/v2\/categories?post=2046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cooss.net\/vi\/wp-json\/wp\/v2\/tags?post=2046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}