
Seraphinite Accelerator es una herramienta poderosa que optimiza la velocidad de los sitios web de WordPress y gestiona la caché. En este artículo, abordaremos cómo eliminar la caché generada utilizando la API.
En COOSS.NET, al escribir en coreano, se agrega una función personalizada en el functions.php del tema para traducir automáticamente a varios idiomas, y se genera un enlace para seleccionar otros idiomas en las páginas traducidas. Sin embargo, cuando el Accelerator almacena en caché un artículo escrito inicialmente en coreano sin una página traducida, aunque haya una página traducida, el enlace a la página traducida no se muestra en la página de caché que ve el usuario.
Por supuesto, se puede configurar el Accelerator para que actualice la caché periódicamente, pero solo se necesita actualizar la caché de la página original traducida. Cambiar la configuración del plugin Accelerator cada vez es engorroso, y no sería eficiente volver a almacenar en caché todo el sitio. Por lo tanto, busqué una API que obligue a regenerar solo la caché de la página original una vez que la traducción esté completa.
Resumen de la API de Seraphinite Accelerator
Seraphinite Accelerator ofrece las siguientes funcionalidades de API.
OperateCache – Gestión de caché
Puede eliminar o regenerar la caché de una página específica.
GetCacheStatus – Verificar estado de la caché
Puede verificar si una URL específica está almacenada en caché.
API de gestión de caché (OperateCache)
La función OperateCache puede eliminar o regenerar la caché de una URL específica según sea necesario.
Uso
seraph_accelAPI::OperateCache( $op, $obj );
Descripción de parámetros
- $op (opción de gestión de caché)
- CACHE_OP_REVALIDATE → Revalidar caché
- CACHE_OP_CHECK_REVALIDATE → Revalidar caché si es necesario
- CACHE_OP_CLEAR → Limpiar caché antigua
- CACHE_OP_DEL → Eliminar caché
- CACHE_OP_SRVDEL → Eliminar caché del servidor (si es posible)
- $obj (URL o ruta relativa a eliminar)
- Para eliminar solo la caché de una página específica, ingrese la URL correspondiente
- Para eliminar la caché de todo el sitio, ingrese null
Ejemplo de eliminación de caché
Eliminar caché de una página específica
seraph_accelAPI::OperateCache( seraph_accelAPI::CACHE_OP_DEL, '/mypage/' );
Eliminar caché de todo el sitio
seraph_accelAPI::OperateCache( seraph_accelAPI::CACHE_OP_DEL, null );
Eliminar caché de varias 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 de verificación del estado de la caché (GetCacheStatus)
Puede verificar si una URL específica está almacenada en caché y si se aplicó la optimización de caché.
Uso
$cache_status = seraph_accelAPI::GetCacheStatus($obj, $headers = []);
Descripción de parámetros
- $obj → URL a verificar
- $headers (opcional) → Se pueden pasar encabezados HTTP específicos para verificar la caché
- Ej: ‘User-Agent’ => ‘AppleWebKit/9999999.99 Mobile’
Valor de retorno
Propiedad | Valor | Significado |
---|---|---|
cache | true | La página está almacenada en caché |
cache | false | La página no está almacenada en caché |
optimization | true | Caché optimizada |
optimization | false | Caché no optimizada |
optimization | null | No hay caché |
status | 'done' | Caché completada |
status | 'revalidating' | Regenerando caché |
status | 'pending' | Caché en espera |
status | 'none' | No procesado |
Ejemplo de verificación del estado de la caché
$cache_status = seraph_accelAPI::GetCacheStatus('https://example.com/mypage/');
if ($cache_status['cache']) {
echo 'La página ha sido almacenada en caché.';
} else {
echo 'La página no ha sido almacenada en caché.';
}
Crear función para eliminar caché de una lista específica de URLs
Puede escribir una función para eliminar la caché de varias URLs a la vez.
Función de eliminación de caché
function sa_clear_cache_for_urls($urls = []) {
if (!class_exists('seraph_accelAPI')) {
error_log('La API de Seraphinite Accelerator no se ha cargado.');
return false;
}
if (!is_array($urls) || empty($urls)) {
error_log('No se ha proporcionado una lista de URL válida.');
return false;
}
foreach ($urls as $url) {
if (!empty($url)) {
seraph_accelAPI::OperateCache(seraph_accelAPI::CACHE_OP_DEL, $url);
error_log('Caché eliminada: ' . $url);
}
}
return true;
}
Ejemplo de uso
$urls_to_clear = [
'/category/wordpress/',
'/tag/performance/',
'/custom-post-type/my-post/',
'/',
];
sa_clear_cache_for_urls($urls_to_clear);
Defina la función como se muestra arriba, y en el momento en que se complete la traducción, pase la dirección de la página del artículo original a la función para actualizar el contenido almacenado en caché (después de eliminarlo, se actualizará cuando la página se muestre o en el momento establecido en la configuración del Accelerator).