Usa los helpers de imagen y carga diferida

Los helpers de carga de POM evitan combinaciones contradictorias, como una imagen de alta prioridad que sigue siendo diferida.

Helper Contrato
pom_normalize_image_loading_value( $value ) Devuelve lazy, eager, auto o una cadena vacía
pom_normalize_image_fetchpriority_value( $value ) Devuelve high, low, auto o una cadena vacía
pom_get_explicit_loading_attributes( $loading, $fetchpriority ) Devuelve atributos nativos normalizados; high fuerza la carga inmediata
pom_get_image_loading_attributes( array $existing, $loading, $fetchpriority ) Devuelve atributos explícitos o el valor diferido por defecto del tema
pom_get_image_loading_attributes_html( ... ) Devuelve la misma decisión como un fragmento de atributo HTML escapado
pom_has_explicit_loading_behavior( array $attributes ) Detecta data-src, nolazy, loading o fetchpriority
pom_should_apply_theme_lazyload( array $attributes ) Indica a un renderizador si el tema puede transformarlo
pom_normalize_background_loading_value( $value ) Devuelve lazy o eager
pom_should_lazyload_background( $value ) Aplica el estado global de carga diferida a una decisión de fondo
pom_get_available_image_sizes() Devuelve los tamaños de imagen expuestos por el tema

Ejemplo:

$attributes = array_merge(
    array(
        'src'      => esc_url( $url ),
        'alt'      => $alt,
        'width'    => $width,
        'height'   => $height,
        'decoding' => 'async',
    ),
    pom_get_image_loading_attributes( array(), 'eager', 'high' )
);

Usa la alta prioridad solo para una imagen realmente crítica, normalmente la imagen principal situada en la parte visible inicial. Aplicarla a muchas imágenes anula la priorización del navegador.

Fuera de las celdas del carrusel de POM, una imagen con data-src, nolazy, loading explícito o fetchpriority explícito se trata como si ya tuviera su propia estrategia de carga. No la pases por otro transformador de carga diferida. El aplazamiento de origen del carrusel, descrito más abajo, tiene prioridad sobre las pistas nativas de carga inmediata/diferida para que las celdas fuera de pantalla no puedan iniciar descargas antes de tiempo. Las imágenes que ya pertenecen a otro cargador data-src permanecen con ese cargador.

Indica siempre la anchura/altura cuando se conozcan, elige un tamaño de imagen de WordPress adecuado, conserva srcset/sizes cuando sea posible y escribe un texto alternativo contextual.

Medios dentro de las diapositivas de Flickity

Mantén los fondos diferidos en el elemento que los pinta, usando class="lazy" y data-bg (o las variantes compatibles de alta densidad y de fondos múltiples). POM espera a que Flickity posicione sus celdas y, a continuación, carga los fondos a medida que entran en el área visible. Las celdas parcialmente visibles cuentan; las celdas totalmente recortadas, los paneles ocultos y las diapositivas de fundido inactivas permanecen diferidas. Las celdas del carrusel que las contienen y el área de visualización del navegador también participan en la comprobación de visibilidad.

El mismo comportamiento se aplica a las presentaciones de fondo de las filas de Page Builder y a las presentaciones de fondo de las secciones de Gutenberg. Cuando la Carga diferida del tema está activada, un ajuste de fondo inmediato carga la primera imagen enseguida y deja diferidas las imágenes posteriores de la presentación. Desactivar la Carga diferida del tema conserva la carga inmediata del fondo. Precarga solo la imagen crítica inicial: una precarga explícita inicia su solicitud independientemente de la visibilidad de la diapositiva.

Flickity se inicializa usando las dimensiones disponibles y vuelve a medir cuando las imágenes terminan de cargarse. No descarga todas las imágenes para establecer la disponibilidad de los medios. Cuando la Carga diferida del tema está activada, el paso de carga de contenido existente mueve las URL de imagen src y srcset a data-src y data-srcset dentro de las celdas del carrusel de POM. También difiere cada conjunto candidato picture > source. La biblioteca LazyLoad existente restaura estos atributos solo cuando la imagen es visible en su celda, y entonces el navegador elige el candidato responsive usando los valores conservados sizes, media y type. Las imágenes conservan loading="lazy" como pista para el navegador; el aplazamiento de origen proporciona el límite estricto de visibilidad del que carece la pista nativa.

Esto cubre los bloques Imagen del núcleo y los bloques POM Image dinámicos dentro de los elementos del Carrusel de Gutenberg, los carruseles anidados y el contenido heredado de carrusel/deslizador procesado a través de los filtros de contenido de WordPress. Las plantillas personalizadas que omiten esos filtros deben proporcionar atributos de origen diferidos mediante su propia integración de renderizado; llamar a un refresco del frontend no puede deshacer una solicitud ya iniciada desde src. No inicialices un segundo cargador de imágenes de propósito general sobre estas celdas.

Mantén valores precisos de width y height, o una proporción de aspecto CSS explícita, para reservar espacio. Los marcadores transparentes conservan las dimensiones intrínsecas conocidas, incluidos los tamaños de los orígenes de picture con dirección artística. Las dimensiones desconocidas no pueden reservar la proporción de aspecto de la imagen final. El marcado original de imagen/picture se conserva en noscript; esto no añade navegación de carrusel sin JavaScript.

El aplazamiento estricto cambia la carga anticipada por un menor número de solicitudes de imagen. Una diapositiva no almacenada en caché puede mostrar brevemente su espacio reservado al entrar en el área visible. Una imagen crítica inicial del carrusel también espera a JavaScript salvo que se precargue por separado; precarga solo el recurso realmente necesario en la vista inicial. Con la Carga diferida del tema desactivada, los orígenes de imagen normales permanecen en el HTML.

La transformación de origen reutiliza el paso DOM existente del tema y no añade un segundo analizador de contenido ni consultas de adjuntos. Añade trabajo por imagen de atributos y ascendencia, HTML de marcadores/alternativas y comprobaciones de visibilidad del navegador mientras los medios siguen pendientes. El cargador de JavaScript es compartido por ambos editores.