Borrar cachés desde el código de la aplicación
Utiliza los asistentes de alto nivel de POM Cache después de cambios de datos personalizados que afecten a una representación pública. El HTML y el JSON progresivo son independientes; borra únicamente el almacén cuya salida haya cambiado.
Borrar el HTML del sitio actual
if ( function_exists( 'pom_cache_delete_site_cache' ) ) {
$cleared = pom_cache_delete_site_cache( 'my_plugin_catalog_sync' );
}
pom_cache_delete_site_cache( $context ) devuelve true cuando la eliminación de alto nivel continúa y false cuando un filtro la veta.
Utiliza un contexto de integración estable y en minúsculas. El vaciado predeterminado de las reglas de reescritura se produce únicamente para manual y manual_ajax; un contexto personalizado evita ese costoso efecto secundario a menos que un filtro lo habilite deliberadamente.
Borrar el JSON progresivo del sitio actual
if ( function_exists( 'pom_cache_json_delete_site_cache' ) ) {
$cleared = pom_cache_json_delete_site_cache(
'my_plugin_catalog_sync'
);
}
El asistente de JSON consulta la compuerta compartida de eliminación del sitio y, a continuación, la compuerta específica de JSON. Borra todo el árbol de JSON progresivo del sitio actual.
Borrar ambos almacenes
Cuando un cambio afecta al HTML inicial y a las cargas progresivas posteriores:
function my_plugin_clear_public_catalog_cache() {
$context = 'my_plugin_catalog_sync';
if ( function_exists( 'pom_cache_delete_site_cache' ) ) {
pom_cache_delete_site_cache( $context );
}
if ( function_exists( 'pom_cache_json_delete_site_cache' ) ) {
pom_cache_json_delete_site_cache( $context );
}
}
No asumas que el primer asistente borra el JSON. El acceso directo de la barra de administración invoca ambos comportamientos, pero los asistentes PHP siguen siendo explícitos.
Invalidar después de un cambio de entrada
Para código que ya dispone de una entrada:
if ( function_exists( 'pom_cache_delete_site_cache_for_post' ) ) {
pom_cache_delete_site_cache_for_post(
$post_id,
get_post( $post_id ),
'my_plugin_post_sync'
);
}
El asistente de HTML:
- devuelve el ID de la entrada, no un booleano de éxito;
- omite los ID no válidos, las revisiones, los guardados automáticos, las entradas inexistentes y los tipos de entrada no visibles;
- suprime una última entrada duplicada dentro de la misma solicitud;
- aplica
pom_cache_clear_post_cache; - borra el almacén HTML completo del sitio actual cuando está permitido.
pom_cache_json_delete_site_cache_for_post() tiene el comportamiento de JSON correspondiente y devuelve el ID de la entrada.
Dirigirse a un único archivo JSON
Cuando tu integración posee una ruta relativa conocida:
$relative_path = 'archive/book/page-2.json';
if (
function_exists( 'pom_cache_json_delete' )
&& function_exists( 'pom_cache_json_normalize_relative_path' )
&& '' !== pom_cache_json_normalize_relative_path( $relative_path )
) {
pom_cache_json_delete(
$relative_path,
array( 'context' => 'my_plugin_book_update' )
);
}
pom_cache_json_delete() devuelve true únicamente cuando se elimina un archivo exacto existente. No requiere que el interruptor principal de JSON esté habilitado.
Evitar el asistente de HTML de bajo nivel
pom_cache_clear_cache( $blog_id ) realiza una poda de HTML de bajo nivel y dispara pom_cache_cleared, pero omite la compuerta compartida de eliminación de alto nivel. Las integraciones de aplicaciones normalmente deberían llamar a pom_cache_delete_site_cache() en su lugar.
Multisitio
Los asistentes utilizan el contexto del blog actual. Para dirigirte a otro sitio, autoriza la operación, llama a switch_to_blog(), utiliza los asistentes de alto nivel y restaura el blog original en un bloque finally.
Borrar los archivos de origen nunca invalida una CDN. Coordina la invalidación en el borde después de que las representaciones de origen y de origen sean correctas.