LazyLoad Plugin – carga diferida de imaxes, vídeos e iframes

Descrición

LazyLoad é o mellor plugin gratuíto de carga diferida para WordPress para cargar de forma diferida imaxes, vídeos e iframes. En resumo, LazyLoad mostra imaxes, vídeos e iframes dunha páxina só cando son visibles para o usuario; é unha forma esencial de acelerar o teu sitio WordPress e optimizar as imaxes para Google PageSpeed.

Podes aplicar a carga diferida ás imaxes do contido das entradas ou do texto dos widgets, ademais de miniaturas, avatares e emoticonas. LazyLoad tamén se encarga da carga diferida de iframes: substituirás facilmente os iframes de Youtube por unha miniatura de vista previa para acelerar aínda máis o tempo de carga da túa web.

Non se usa ningunha biblioteca de JavaScript como jQuery, e o peso do script é inferior a 10 KB.

Por que é crucial a carga diferida para o rendemento?

A carga diferida é unha técnica de rendemento clave para que o teu sitio sexa máis rápido. Reducirás o tempo de carga, mellorarás a túa puntuación de rendemento en Lighthouse e optimizarás as túas notas de Core Web Vitals.

Aplicar a carga diferida ás túas imaxes en WordPress axudarate a conseguir unha mellor puntuación en PageSpeed Insights por tres motivos principais:

Bota un ollo á nosa lista completa de motivos para usar a carga diferida. Despois, activa LazyLoad e fai que a túa web de WordPress sexa máis rápida!

Dependencias

Script de LazyLoad: https://github.com/verlok/lazyload

Instalación

  1. Sube o cartafol completo rocket-lazy-load ao directorio /wp-content/plugins/
  2. Activa o plugin a través do menú «Plugins» de WordPress

Preguntas frecuentes

Como podo usar a carga diferida nativa?

Para usar a carga diferida nativa nos navegadores que sexan compatibles con esta característica, tes que usar a seguinte liña:

add_filter( 'rocket_use_native_lazyload', '__return_true' );

Os navegadores que non sexan compatibles coa carga diferida nativa usarán a solución baseada en JS como antes.

Como podo desactivar a carga diferida nalgunhas páxinas?

Podes usar o filtro do_rocket_lazyload.

Aquí tes un exemplo para poñer nos arquivos functions.php que desactiva a carga diferida nas entradas:

add_action( 'wp', 'deactivate_rocket_lazyload_on_single' );
function deactivate_rocket_lazyload_on_single() {
    if ( is_single() ) {
        add_filter( 'do_rocket_lazyload', '__return_false' );
    }
}

Como podo desactivar a carga diferida nalgunhas imaxes?

Simplemente engade unha propiedade data-no-lazy="1" na túa etiqueta img ou iframe.

Tamén podes usar os filtros rocket_lazyload_excluded_attributes ou rocket_lazyload_excluded_src para excluír padróns específicos.

Para os iframes, o filtro é rocket_lazyload_iframe_excluded_patterns.

Como podo cambiar o límite para activar a carga?

Podes usar o filtro rocket_lazyload_threshold.

Exemplo de código:

function rocket_lazyload_custom_threshold( $threshold ) {
    return 100;
}
add_filter( 'rocket_lazyload_threshold', 'rocket_lazyload_custom_threshold' );

Como eliminar a etiqueta “

Podes usar o filtro rocket_lazyload_noscript para desactivar a adición da etiqueta <noscript> que se usa por compatibilidade cando JS está desactivado.

add_filter( 'rocket_lazyload_noscript', '__return_false' );

Como cambiar o marcador de posición das imaxes con carga diferida

Podes usar rocket_lazyload_placeholder para cambiar o marcador de posición por defecto das imaxes con carga diferida.

function rocket_lazyload_custom_placeholder( $placeholder ) {
    return 'default.jpg';
}
add_filter( 'rocket_lazyload_placeholder', 'rocket_lazyload_custom_placeholder' );

Como cambiar a saída HTML antes de enviala ao navegador

Podes usar o filtro rocket_lazyload_html para modificar a saída HTML xerada despois de aplicar a carga diferida e antes de enviala ao navegador.

Como excluír vídeos de YouTube da carga diferida

Podes usar o filtro rocket_lazyload_exclude_youtube_thumbnail para excluír os padróns que coincidan cos vídeos de YouTube aos que non queres aplicar a carga diferida.

function rocket_lazyload_exclude_youtube( $patterns ) {
    $patterns[] = 'string_to_match';

    return $patterns;
}
add_filter( 'rocket_lazyload_exclude_youtube_thumbnail', 'rocket_lazyload_exclude_youtube' );

Uso o plugin X e as miñas imaxes xa non se mostran

Algúns plugins non son compatibles coa carga diferida. Abre un tema de soporte e veremos como resolver o problema excluíndo a carga diferida para ese plugin.

Como podo aplicar a carga diferida a unha imaxe de fondo?

O plugin aplicará automaticamente a carga diferida ás imaxes de fondo establecidas cun atributo style nun elemento div:

<div style="background-image: url(image.jpg);">

Tamén podes aplicala manualmente. O elemento ao que queres aplicar a carga diferida debe ter este marcado específico:

<div class="rocket-lazyload" data-bg="url(../img/image.jpg)"></div>

O elemento debe ter a clase rocket-lazyload e un atributo data-bg, cuxo valor é a URL CSS da imaxe.

Onde informo dos erros de seguridade atopados neste plugin?

Podes informar de calquera fallo de seguridade que atopes no código fonte do plugin site-reviews a través do Programa de divulgación de vulnerabilidades de Patchstack. O equipo de Patchstack axudarate coa verificación, a asignación de CVE e encargarase de avisar aos desenvolvedores deste plugin.

Plugins relacionados

Comentarios

21 de Xullo de 2024
Installed the plugin and selected the three options from settings and checked the website so find all content missing. I then reversed the process but content still missing and not visible in backend. Attempting to restore from backup.
26 de Xuño de 2024
This plugin added lazy loading functionality to my custom WordPress theme, worked like a charm! Thank you a lot! 🙏🏼👨🏻‍💻
Ler todas as 139 opinións

Colaboradores e desenvolvedores

“LazyLoad Plugin – carga diferida de imaxes, vídeos e iframes” é un software de código aberto. As seguintes persoas colaboraron con este plugin.

Colaboradores

“LazyLoad Plugin – carga diferida de imaxes, vídeos e iframes” foi traducido a 16 idiomas. Grazas aos desenvolvedores polas súas contribucións.

Traduce “LazyLoad Plugin – carga diferida de imaxes, vídeos e iframes” ao teu idioma.

Interesado no desenvolvemento?

Revisa o código, bota unha ollada aorepositorio SVN, ou subscríbete ao log de desenvolvemento por RSS.

Rexistro de cambios

2.4.1

Corrección: mellora a detección de atributos para imaxes de fondo e reforza a renderización das miniaturas de YouTube (rocket-lazyload-common 3.0.22)

2.4.0

Seguridade: corrixe unha vulnerabilidade de Cross-Site Scripting (XSS) almacenado e autenticado informada por Pathstack.

2.3.9

Versión actualizada para corrixir unha diferenza entre a etiqueta da versión en Github e a versión lanzada, que provocaba un problema de despregamento.

2.3.8

Mellora: compatibilidade con Launchpad (ver https://github.com/wp-launchpad)
Mellora: ampliada a compatibilidade con PHP > 7.3
Bug: eliminado wp-media/rocket-lazyload-common dos vendors
Mellora: actualizado wp-media/rocket-lazyload-common a 3.0

2.3.7

Corrección: eliminado o filtro rocket_lazyload_polyfill debido a unha vulnerabilidade en polyfill

2.3.5

Mellora: proba do plugin coa última versión de WordPress v5.9.3
Mellora: cambio do contido do readme de WP.

2.3.4

Mellora: permite que as etiquetas <a> apliquen a carga diferida a imaxes de fondo
Mellora: engade a etiqueta aos elementos picture con carga diferida
Corrección: evita un erro fatal relacionado co conflito do paquete League Container con WooCommerce 4.4
Corrección: actualiza a carga diferida para o soporte de imaxes de fondo coa nova versión do script de carga diferida
Corrección: aplica correctamente a clase rocket-lazyload en elementos cunha imaxe de fondo e un valor de clase baleiro
Corrección: aplica correctamente a clase rocket-lazyload en elementos con HTML mal formado
Corrección: evita un problema de visualización coas imaxes de fondo cando se usan distintos tipos de comiñas arredor da URL
Corrección: evita que o deseño se rompa cando o atributo alt ten caracteres codificados en HTML

2.3.3

Mellora: engade a clase data-skip-lazy e skip-lazy á lista de exclusións como parte da iniciativa de interoperabilidade entre plugins de carga diferida
Mellora: usa a carga diferida nativa só se o filtro rocket_use_native_lazyload é verdadeiro
Mellora: aplica a carga diferida a imaxes de fondo establecidas en elementos figure
Corrección: engade correctamente a clase rocket-lazyload cando o atributo class está baleiro nun elemento cunha imaxe de fondo
Corrección: substitúe correctamente o iframe de YouTube pola imaxe de vista previa cando se usa o protocolo relativo
Corrección: conserva youtube-nocookie.com durante LazyLoad

2.3.2

Corrección: caracteres incorrectos no código HTML da miniatura de Youtube

2.3.1

Corrección: evita un conflito con WP Rocket
Corrección: aplica loading=”lazy” á miniatura de Youtube
Corrección: engade o atributo autoplay ao iframe cargado coa miniatura de Youtube

2.3

Mellora: engade soporte para a carga diferida nativa do navegador
Corrección: evita imaxes rotas nalgúns casos no elemento picture
Corrección: evita atributos lazy incorrectos para srcset e sizes nunha imaxe dentro dun elemento picture

2.2.3

  • Mellora: mellora a compatibilidade co elemento picture
  • Mellora: aplica a carga diferida a imaxes de fondo establecidas en elementos section, span e li
  • Mellora: pasa tamén os valores $width e $height ao filtro rocket_lazyload_placeholder
  • Corrección: usa 0 en vez de 1 para as dimensións do marcador de posición por defecto para mellorar a compatibilidade
  • Corrección: mellora o soporte do scroll infinito
  • Corrección: exclúe da carga diferida as imaxes de fondo avia-background-fixed e data-large_image de Enfold

2.2.2

  • Corrección: exclúe automaticamente o atributo data-height-percentage para evitar problemas de visualización
  • Corrección: xestiona de novo correctamente os vídeos adaptables que usan fitVids

2.2.1

  • Mellora: engade unha forma de personalizar as opcións do script de carga diferida
  • Corrección: evita un erro en Internet Explorer 11
  • Corrección: evita un conflito coas mostras de variación de WooCommerce
  • Corrección: evita un src baleiro cando a imaxe é un base64 integrado
  • Corrección: evita un problema cando o atributo src orixinal usa comiñas simples

2.2

  • Mellora: actualiza o script de carga diferida á última versión
  • Mellora: usa as dimensións da imaxe orixinal para o tamaño do marcador de posición cando sexa posible, para reducir o reflow do contido
  • Mellora: ignora as imaxes que usan o novo atributo loading introducido por Chrome para a carga diferida nativa do navegador

2.1.5

  • Corrección: evita coincidir cos datos incorrectos cando hai un atributo data-style nun div para imaxes de fondo
  • Elimina data-cfasync=”false” por defecto
  • Mellora: engade o filtro rocket_lazyload_script_tag para modificar o HTML do script de carga diferida se é necesario
  • Mellora: engade o atributo data-no-minify á etiqueta do script de carga diferida para evitar que os combinadores de JS o combinen
  • Mellora: mellora o código de MutationObserver para chamar ao método de actualización da carga diferida só se unha imaxe/iframe ou elemento con .rocket-lazyload está contido nos novos nodos engadidos ao DOM

2.1.4

  • Corrección de regresión: exclúe de novo correctamente os scripts da carga diferida

2.1.3

  • Corrección: ignora o contido dentro das etiquetas noscript para evitar modificalas e causar problemas de visualización

2.1.2

  • Mellora: actualiza o script de carga diferida á última versión
  • Mellora: engade unha forma de aplicar a carga diferida á imaxe en miniatura de Youtube
  • Mellora: engade os atributos width e height á imaxe en miniatura de Youtube segundo a resolución
  • Mellora: desactiva por defecto o polyfill para intersectionObserver e engade unha forma de activalo
  • Mellora: engade data-cfasync=”false” á etiqueta do script de carga diferida
  • Mellora: evita a carga diferida no editor de páxinas de Oxygen Builder
  • Corrección: envolve o CSS sen JS nunha etiqueta noscript e elimina o identificador no-js

2.1.1

  • Corrección: aplica correctamente a carga diferida aos elementos picture
  • Corrección: evita a dobre carga dunha imaxe cando un elemento img dentro dun elemento picture só ten un atributo srcset e ningún atributo src

2.1

  • Mellora: actualiza o script de carga diferida á última versión
  • Mellora: aplica a carga diferida aos elementos picture atopados na páxina
  • Mellora: aplica a carga diferida aos elementos div cunha imaxe de fondo atopados na páxina. Consulta as FAQ para obter máis información.

2.0.4

  • Mellora: engade un filtro para a exclusión de padróns de carga diferida en iframes
  • Mellora: exclúe automaticamente da carga diferida o padrón soliloquy-image
  • Corrección: evita un problema cando unha imaxe/iframe está duplicada na mesma páxina
  • Corrección: evita o erro de validación W3C para o marcador de posición SVG

2.0.3.2

  • Corrección: ignora correctamente os scripts integrados con saltos de liña no seu interior

2.0.3.1

  • Corrección: corrixe un problema que impedía o funcionamento da carga diferida

2.0.3

  • Corrección: evita unha visualización incorrecta se JavaScript está desactivado
  • Corrección: non aplica a carga diferida nas páxinas do editor de Divi/Extra/Beaver Builder
  • Corrección: usa a URL correcta para cada iframe cando hai varios iframes na mesma páxina
  • Corrección: ignora o contido dentro das etiquetas de script integrado para evitar aplicarlle a carga diferida

2.0.2

  • Corrección: corrixe un erro na compatibilidade co plugin AMP

2.0.1

  • Corrección: evita un erro fatal en sistemas operativos que distinguen entre maiúsculas e minúsculas

2.0

  • Mellora: a carga diferida aplícase agora no gancho template_redirect, o que debería permitir ao plugin aplicar a optimización a máis imaxes e atopar menos conflitos á vez
  • Mellora: dirixe especificamente o script de carga diferida aos elementos de imaxes/iframes cun atributo data-lazy-src
  • Mellora: actualiza o script de carga diferida á última versión
  • Mellora: posibilidade de aplicar a carga diferida a imaxes de fondo cun marcado específico, consulta as FAQ
  • Mellora: usa unha imaxe svg como marcador de posición en vez dun gif en base64
  • Corrección: usa MutationObserver só se está dispoñible no navegador
  • Corrección: ao usar a opción de miniatura de Youtube, formatea correctamente a consulta de Youtube se a URL do vídeo está codificada
  • Corrección: mellora a coincidencia de iframes para evitar resultados inesperados
  • Corrección: actualiza o CSS da opción de miniatura de Youtube para evitar problemas co bloque de incrustacións de Gutenberg

1.4.9

  • Mellora: actualiza o script de carga diferida á última versión dispoñible
  • Mellora: usa lazy-sizes para evitar o erro de validación W3C cando se define sizes pero non srcset
  • Mellora: analiza imaxes ou iframes só se o elemento está seleccionado para a carga diferida nas opcións
  • Corrección: evita a advertencia para lazyload+v en Google Search Console
  • Corrección: evita o aviso de PHP con WooCommerce para as imaxes de produto

1.4.8

  • Notice: agora a versión mínima de WordPress requirida é a 4.7
  • Mellora: actualiza a versión do script de carga diferida
  • Mellora: elimina a imaxe do marcador de posición para mellorar o tempo de carga percibido
  • Mellora: compatibilidade coa URL de privacidade de Youtube
  • Mellora: actualiza a imaxe de reprodución para coincidir co logotipo de Youtube
  • Mellora: soporte para os parámetros de URL de Youtube
  • Mellora: carga diferida das imaxes mostradas con wp_get_attachment_image(). /!\ sen alternativa se JavaScript está desactivado
  • Corrección: usa o tamaño correcto definido en srcset para a imaxe con carga diferida
  • Corrección: evita a substitución da miniatura de Youtube nas listas de reprodución
  • Corrección: evita a carga diferida de iframes nas páxinas AMP
  • Corrección: corrixe o dominio de texto para as traducións (grazas a @ Chantal Coolsma)

1.4.7

  • Corrixe a compatibilidade co scroll infinito
  • Evita a carga diferida nas imaxes de masterSlider

1.4.6

  • Inclúe correctamente a versión 8.5.2 do script de carga diferida
  • Evita o erro 404 no script de carga diferida se a URL contén “-v”

1.4.5

  • Cambia o nome da páxina de axustes no menú de WP
  • Novo banner de produto na páxina de axustes
  • Carga condicionalmente unha versión diferente do script segundo a compatibilidade do navegador con IntersectionObserver
  • Corrixe un fallo polo que as imaxes inicialmente ocultas non se mostraban correctamente ao aparecer na vista (carruseis, pestanas, acordeóns)

1.4.4

  • Redeseño da administración

1.4.3

  • O plugin é compatible de novo con PHP < 5.4

1.4.2

  • Actualiza o script de carga diferida para recuperar a compatibilidade con IE9/10

1.4.1

  • Corrixe un fallo causado por unha limpeza demasiado agresiva

1.4

  • Nova opción: substituír os vídeos de Youtube por unha miniatura. Esta opción pode mellorar moito o teu tempo de carga, especialmente se tes varios vídeos na mesma páxina

1.3.3

  • 2017-09-16
  • Evita que se eliminen scripts e estilos durante a análise do HTML

1.3.2

  • 2017-09-12
  • Corrixe imaxes que non se mostraban en certas condicións porque a exclusión de atributos de imaxe non funcionaba correctamente

1.3.1

  • 2017-09-07
  • Non aplica a carga diferida ao carrusel de Divi

1.3

  • 2017-09-01
  • Mellora a análise do HTML de imaxes e iframes para que sexa máis rápida e eficiente
  • Fai que a carga diferida sexa compatible con fitVids para iframes
  • Non aplica a carga diferida nas páxinas AMP (compatible co plugin AMP de Automattic)
  • Usa about:blank como marcador de posición por defecto dos iframes para evitar advertencias na consola do navegador
  • Non aplica a carga diferida á miniatura de upPrev

1.2.1

  • 2017-08-22
  • Corrixe a falta do script de carga diferida
  • Non aplica a carga diferida ás imaxes nas solicitudes da API REST

1.2

  • 2017-08-22
  • Actualiza o script de carga diferida á última versión
  • Cambia a forma de cargar o script

1.1.1

  • 2017-02-13
  • Bug fix: elimina o uso da etiqueta curta para evitar o erro 500 nalgunhas instalacións

1.1

  • 2017-02-12
  • Novo
    • Biblioteca JS actualizada
    • Soporte para iFrame
    • Soporte para srcset e sizes
    • Nova páxina de opcións

1.0.4

  • 2015-04-28
  • Bug Fix: resolto un conflito entre LazyLoad & Emoji desde WordPress 4.2

1.0.3

  • 2015-01-08
  • Bug Fix: non aplica LazyLoad ao captcha de Really Simple CAPTCHA para evitar conflitos.

1.0.2

  • 2014-12-28
  • Mellora: engade o filtro « rocket_lazyload_html » para xestionar a saída que se imprimirá.

1.0.1.1

  • 2014-07-25
  • Corrixe un erro parvo coa nova expresión regular na 1.0.1

1.0.1

  • 2014-07-16
  • Bug Fix: cando unha etiqueta IMG ou o contido (widget ou entrada) contén a cadea “data-no-lazy”, ignorábanse todas as etiquetas IMG en vez dunha soa.
  • Security fix: preg_replace() podería levar a unha vulnerabilidade XSS, grazas a Alexander Concha
  • Cumprimento do código

1.0

  • 2014-01-01
  • Versión inicial.