En esta entrada, vamos a explorar juntos la API de imágenes responsivas de WordPress. Mencionaremos qué son las imágenes responsivas, por qué deberías utilizarlas, cómo hace WordPress que funcionen estas imágenes y qué hacer si quieres personalizarlas.
![Imágenes [1] - Cómo utilizar una API común para lograr un procesamiento de imágenes responsivo - Photon Flux | Servicio profesional de reparación de WordPress, alcance global, respuesta rápida](http://gqxi.cn/wp-content/uploads/2024/03/image-316-1024x576.png)
?Qué son las imágenes responsive?
Imágenes con capacidad de respuestaes una imagen que se adapta al tama?o de la pantalla del dispositivo en el que se visualiza. Esto es importante porque significa que la imagen siempre se verá bien independientemente del dispositivo en el que se vea.
Veamos.Un ejemplo.
La mayoría de los navegadores modernos tienen un modo especial para ver los dise?os de las páginas web en dispositivos móviles. En los navegadores basados en Chrome, se llama modo dispositivo, y en Firefox y Safari, modo de dise?o adaptable. Normalmente puedes acceder a él desde las herramientas para desarrolladores de tu navegador. Cuando este modo está activado, puedes ver cómo se verá una página web en diferentes dispositivos.
Si observa la imagen de la cabecera en este ejemplo, verá que está recortada cuando la ve en su dispositivo móvil. Sin embargo, la imagen del área de contenido no lo está; solo muestra la imagen en un tama?o más peque?o.
Por lo tanto, es posible que desee mostrar una versión recortada de esa imagen en un dispositivo móvil y la imagen completa en un dispositivo de escritorio. Aquí es donde resultan útiles las imágenes con capacidad de respuesta.
Como puede ver en este ejemplo de imagen responsivaComo puede ver en , al cambiar a un dispositivo móvil, tanto la imagen de cabecera como la de contenido principal aparecen recortadas.
Aunque el conocimiento de cómo funcionan las imágenes responsivas está fuera del alcance de este tutorial, puede encontrar más información en la documentación web de MDN enMás información sobre cómo implementar imágenes responsivas en.
![Imágenes [2] - Cómo utilizar una API común para lograr un procesamiento de imágenes responsivo - Photon Flux | Servicio profesional de reparación de WordPress, alcance global, respuesta rápida](http://gqxi.cn/wp-content/uploads/2024/03/image-317.png)
API de imágenes adaptables de WordPress
srcset
A partir de WordPress 4.4, la inclusión y atribución delfunción (matem.)tallas
Marcaje de imagen generado, WordPress soporta de forma nativa imágenes responsive. Esto significa que está activado por defecto y que cualquier imagen generada por WordPress es automáticamente responsive.wp_get_attachment_image()
Para entender cómo funciona, veamos un ejemplo sencillo.
En primer lugar, a?ada la imagen a la biblioteca multimedia de su sitio de WordPress.
Si a continuación navega hasta el directorio de subida y ve dónde está almacenada la imagen, verá que hay varias versiones de la misma.
Esto se debe a que WordPress genera automáticamente varias versiones de una imagen en distintos tama?os, que pueden utilizarse en diferentes contextos.
Antes de que existieran las imágenes con capacidad de respuesta, los desarrolladores intentaban servir dinámicamente imágenes diferentes al navegador en función del tipo de dispositivo. El servidor comprobaba el tama?o del dispositivo y servía la imagen adecuada.
Esto puede hacerse utilizando la funciónagente de usuarioLa cadena se implementa como una cadena que el navegador envía al servidor y que contiene información sobre el navegador y el dispositivo utilizados.
// comprueba la variable $_SERVER["HTTP_USER_AGENT"] para ver si se trata de una petición de dispositivo móvil
$isMob = is_numeric(strpos(strtolower($_SERVER["HTTP_USER_AGENT"]), "mobile"));
if($isMob){
echo 'Usando dispositivo móvil...' ;
}else{
echo 'Usando Desktop...' ; }else{ ;
}
Sin embargo, esto dificulta las pruebas, ya que es necesario realizarlas en un dispositivo físico mediante la aplicaciónBrowserStacky otros servicios, o configurar una cadena de agentes de usuario en un entorno de prueba.
El dise?o responsivo utiliza elementos como las consultas de medios para generar una única página que responderá en el navegador en función de aspectos como la anchura de la ventana gráfica y la densidad de visualización. Las imágenes responsivas siguen esta estrategia y envían toda la información al navegador por adelantado, dejando que este se encargue de cargar la imagen adecuada en lugar de tomar estas decisiones en el servidor antes de que se cargue la página.
Veámoslo en acción a?adiendo la imagen a la entrada y ajustando su tama?o a tama?o completo en el editor.
Cuando previsualice la imagen, observará que la etiqueta de imagen contiene algo más que la URL de la imagen: también contiene una etiquetasrcset
y un atributotallas
Atributos.
<img decoding="async" fetchpriority="high" width="799" height="533" src="https://learnpress.test/wp-content/uploads/2023/09/water-4.jpeg" class="wp-image-9"
srcset=" https://learnpress.test/wp-content/uploads/2023/09/water-4.jpeg 799w, https://learnpress.test/wp-content/uploads/2023/09/water-4-300x200.jpeg 300w, https://learnpress.test/wp-content/uploads/2023/09/water-4-768x512.jpeg 768w"
sizes="(max-width: 799px) 100vw, 799px">
Echemos un vistazo más de cerca a esta etiqueta de imagen para entender lo que hacen estos atributos.
debesrcset
contiene una lista de todas las versiones diferentes de la imagen generada por WordPress, y el ancho de esa imagen en píxeles.
En este ejemplo, hay 3 versiones diferentes de la imagen con anchos de799
y769
responder cantando300
.
debetallas
especifica la anchura del dise?o de la imagen para cada lista de condiciones de medios. En este ejemplo, las condiciones de medios son(max-width: 799px)
y tiene dos anchos de dise?o100vw
responder cantando799px
.100vw
Indica que la imagen se mostrará a 100% de la anchura de la ventana gráfica.799px
Indica que la imagen se mostrará a 799px.
Por lo tanto, en este ejemplo, si la anchura de la ventana gráfica es inferior a 799px, la imagen se mostrará a 100% de la anchura de la ventana gráfica; de lo contrario, la imagen se mostrará a una anchura de 799px.
El navegador puede entonces utilizar esta información para determinar qué imagen cargar en función del dispositivo (determinado por la anchura de la ventana gráfica) que está viendo la imagen. Ya no es necesaria la lógica del servidor, lo que acelera la solicitud de la página. Como las imágenes se sirven estáticamente, el navegador puede almacenarlas en caché, lo que acelera aún más los tiempos de carga de la página.
Nuevas funciones y ganchos
WordPress 4.4 introduce muchas funciones y ganchos nuevos que facilitan mucho el trabajo con imágenes responsivas.
- wp_get_attachment_image_srcset () - recupera el valor del atributo de adjunto de la imagen
srcset
. - wp_calculate_image_srcset () - función de ayuda para calcular la fuente de la imagen que se incluirá en la propiedad
srcset
. - wp_get_attachment_image_sizes () - Crea el valor del atributo tama?o de la imagen.
- wp_calculate_image_sizes () - función de ayuda utilizada para crear el atributo de tama?o de la imagen.
- wp_image_add_srcset_and_sizes () -
srcset
Alimg
para a?adir atributos y cambiar su tama?o.
Para evitar la transferencia de datos asrcset
a?ade imágenes muy grandes, a?ade unmax_srcset_image_width
(máquina) filtroPermite al tema establecer el ancho máximo de imagen para las imágenes contenidas en la lista.srcset
El valor por defecto es de 2048 píxeles. El valor por defecto es de 2048 píxeles.
Marcado de imagen adaptable personalizado
Si es necesario, también se puede personalizar el marcado de las imágenes.
Puede utilizar filtrosresponder cantando(máquina) filtropara cambiar el valor por defectosrcset
responder cantandotallas
o utilizando el filtro wp_get_attachment_image_attributessobrescribirSe modifican los atributos o de las imágenes que no están incrustadas en el contenido de la entrada (por ejemplo, miniaturas de entradas, galerías, etc.), de forma similar a otros atributos de imagen.wp_calculate_image_srcset
wp_calculate_image_sizes
srcset
tallas
Si está desarrollando un tema, también puede crear su propio marcado personalizado utilizando la funciónwp_get_attachment_image_srcset
paradigma.
Veamos un ejemplo.
Supongamos que desea generar una salidaimg
para la etiqueta de esa imagen, pero sólo desea renderizar imágenes de tama?o medio y establecer una función personalizadatallas
Atributos.
Por defecto, la imagen se muestra con una anchura de ventana de 100% para ventanas de menos de 799 píxeles, y con una anchura de 799 píxeles en ventanas más anchas en las que desee configurar la propiedad Tama?o para utilizar una anchura de imagen media de 768 píxeles.
Esto significa que debe establecer la propiedad size en(max-width: 768px) 100vw, 768px
.
function get_custom_responsive_image( $attachment_id ) {
$img_src = wp_get_attachment_image_url( $attachment_id, 'medium' );
$img_srcset = wp_get_attachment_image_srcset( $attachment_id, 'medium' );
echo '<img src="' . $img_src . '" srcset="' . $img_srcset . '" sizes="(max-width: 768w) 100vw, 768px" alt="Nuestra imagen personalizada">';
}
A continuación, puede llamar a esta función en cualquier archivo de tema que admita PHP, como plantillas y secciones de plantillas en el tema Clásico, o patrones de bloques en el tema Bloque.
En este ejemplo, se a?ade al esquema predeterminado para el pie de página del tema TwentyTwelveThirteen, que se encuentra en el bloque de la parte superior del esquema. El ID de la imagen es 9, que puede pasar a la función:
<!-- wp:group {"align":"wide"} -->
<div class="wp-block-group alignwide" style="padding-top:var(--wp--preset--spacing--40)">
<?php get_custom_responsive_image( 9 ); ?>
</div>
<!-- /wp:group -->
Si ve esto en el front-end, puede ver que la propiedad Tama?o personalizado se ha utilizado para esa imagen en particular.
Si pruebas esto en modo dispositivo, verás que en tama?os de dispositivo inferiores a 768 píxeles, la imagen se muestra a 100% del ancho de la ventana gráfica, y en tama?os superiores a 768 píxeles, la imagen se muestra a 768 píxeles de ancho.
Contacte con nosotros | |
---|---|
?No puede leer el tutorial? Póngase en contacto con nosotros para obtener una respuesta gratuita. Ayuda gratuita para sitios personales y de peque?as empresas |
![]() Servicio de atención al cliente WeChat
|
① Tel: 020-2206-9892 | |
② QQ咨詢:1025174874 | |
(iii) Correo electrónico: info@361sale.com | |
④ Horario de trabajo: de lunes a viernes, de 9:30 a 18:30, días festivos libres |
Enlace a este artículo:http://gqxi.cn/es/6649El artículo está protegido por derechos de autor y debe ser reproducido con atribución.
Sin comentarios