Integrar la invalidación de entradas

POM Cache puede limpiar el HTML del sitio actual y el JSON progresivo después de que cambie el contenido visible. Usa los ajustes de purga integrados para las ediciones normales de WordPress y llama a los helpers públicos de entradas cuando una integración externa modifique datos públicos fuera de esos eventos estándar.

Invalidación automática de entradas

Cuando el ajuste de purga de HTML correspondiente está habilitado, POM Cache se engancha a los guardados de entradas, el borrado, el envío a la papelera y la restauración, las transiciones de estado, las asignaciones de términos y los cambios de taxonomía relevantes.

El JSON progresivo registra su propio conjunto de hooks únicamente cuando el maestro de JSON y los ajustes de purga correspondientes están habilitados. Por tanto, la automatización de HTML y la de JSON son independientes.

Los helpers de entradas omiten:

  • IDs no válidos;
  • la misma última entrada procesada en una misma petición;
  • las revisiones;
  • los guardados automáticos;
  • los objetos de entrada inexistentes;
  • los tipos de contenido que WordPress no considera visibles.

Un cambio de entrada permitido limpia toda la tienda del sitio actual para esa representación. No intenta deducir cada archivo, página de inicio, feed, bloque de contenido relacionado o URL de taxonomía que pueda contener la entrada.

Llamar a los helpers desde un sincronizador personalizado

function my_plugin_after_remote_post_sync( $post_id ) {
    $post = get_post( $post_id );
    if ( ! $post instanceof WP_Post ) {
        return;
    }

    if ( function_exists( 'pom_cache_delete_site_cache_for_post' ) ) {
        pom_cache_delete_site_cache_for_post(
            $post_id,
            $post,
            'my_plugin_remote_sync'
        );
    }

    if ( function_exists( 'pom_cache_json_delete_site_cache_for_post' ) ) {
        pom_cache_json_delete_site_cache_for_post(
            $post_id,
            $post,
            'my_plugin_remote_sync'
        );
    }
}

Ambas funciones devuelven el ID de la entrada por compatibilidad con los hooks de WordPress. No interpretes el valor devuelto como «se eliminaron archivos».

Vetar un tipo de contenido

Usa filtros independientes cuando un tipo de contenido visible interno no pueda afectar a una representación:

add_filter(
    'pom_cache_clear_post_cache',
    static function ( $allow, $post ) {
        if ( 'internal_notice' === $post->post_type ) {
            return false;
        }

        return $allow;
    },
    10,
    2
);

add_filter(
    'pom_cache_json_clear_post_cache',
    static function ( $allow, $post ) {
        if ( 'internal_notice' === $post->post_type ) {
            return false;
        }

        return $allow;
    },
    10,
    2
);

Conserva los vetos anteriores y comprueba todas las relaciones. Un tipo de contenido que no tiene URL singular pública puede aun así afectar a un archivo público, a la navegación, a un bloque, a los resultados de búsqueda o a una carga progresiva.

Momento de la asignación de términos

POM Cache también gestiona la asignación de objetos a términos porque la pertenencia a una categoría o taxonomía cambia la salida del archivo. Si tu importador omite las APIs normales de WordPress o actualiza una tabla personalizada que influye en las plantillas, WordPress no puede anunciar esa dependencia automáticamente. Llama al helper del sitio una vez después del cambio lógico completo.

Verificación

Para cada invalidación personalizada:

  1. genera el HTML y el JSON afectados sin haber iniciado sesión;
  2. realiza el cambio;
  3. confirma que el recuento o el archivo relevante del sitio actual se elimina;
  4. solicita la ruta pública y verifica el contenido actualizado;
  5. confirma que las tiendas no relacionadas permanecen intactas cuando se excluyen deliberadamente;
  6. invalida la CDN después de la verificación del origen.

Para operaciones de varios elementos, no llames a estos helpers de sitio completo dentro de cada iteración del bucle. Usa la estrategia de Diseñar operaciones en bloque.

Invalidar URLs individuales exactas

Usa pom_cache_delete_html_urls(array $urls): bool cuando una integración sea propietaria de un conjunto preciso de URLs individuales públicas, incluidas las URLs capturadas antes de que una entrada se elimine permanentemente.

$urls = array(get_permalink($post_id));
$cleared = pom_cache_delete_html_urls($urls);

Proporciona URLs absolutas sin cadenas de consulta. El helper elimina únicamente el archivo HTML correspondiente; no recorre directorios, no limpia la página de inicio, no elimina otras entradas individuales ni limpia el JSON progresivo. Captura las URLs canónicas, las variantes de idioma y los alias conocidos antes de eliminar la entrada. El llamador sigue siendo responsable de decidir qué representaciones pertenecen a ese contenido.

El valor devuelto es true cuando todos los objetivos suministrados son válidos y su archivo HTML está ausente después de la invalidación. Las URLs no válidas, una raíz de caché no disponible, una lista de objetivos vacía o un fallo de desvinculación devuelven false. Reintenta la invalidación fallida antes de informar de que una página eliminada ya no puede servirse.

La lista de hosts permitidos por defecto contiene el host de inicio del sitio actual. Las integraciones multilingües que usen dominios adicionales pueden ampliar el array con pom_cache_html_purge_hosts. Añade solo dominios que pertenezcan al sitio actual. Se rechazan las URLs raíz, el recorrido de rutas y las consultas que cambian el contenido. La invalidación externa de la CDN sigue siendo independiente.