Tengo problemas para eliminar el ancho y la altura de mis imágenes adjuntas cuando uso wp_get_attachment_image. Esto es lo que estoy usando para mostrar la imagen
<?php echo $image = wp_get_attachment_image( $entry['slide_image_id'], true, 'full'); ?>
Cómo se ve el código fuente
<img width="150" height="108" src="http://website:8888/wp-content/uploads/2015/12/cupcakes-and-cosmetics-logo.png" class="attachment-1 size-1" alt="cupcakes-and-cosmetics-logo" />
Me gustaría que se muestre así
<img src="http://website:8888/wp-content/uploads/2015/12/cupcakes-and-cosmetics-logo.png" class="attachment-1 size-1" alt="cupcakes-and-cosmetics-logo" />
La imagen se extrae de un campo de archivo repetible con una entrada con un id de slide_image_id. He estado mirando alrededor y he notado que debo usar wp_get_attachment_image_url, pero cuando lo uso con mi código anterior, la imagen no se muestra. ¿Hay algo que estoy haciendo mal?
<?php echo $image = wp_get_attachment_image_url( $entry['slide_image_id'], true, 'full'); ?>
Nota al margen: $ entry ['slide_image_id'] es lo que se usa para llamar a mi campo de archivo repetible.
custom-field
attachments
images
usuario3756781
fuente
fuente
wp_get_attachment_image_url()
devuelve una URL, no un elemento de imagen.add_filter('wp_get_attachment_image_attributes' ...
excepto que solo la altura y el ancho están codificados.Respuestas:
Sus argumentos para ambos
wp_get_attachment_image_url()
ywp_get_attachment_image()
están en el orden incorrecto: consulte la documentación vinculada para obtener más detalles. Además,wp_get_attachment_image_url()
devuelve una URL, no un elemento de imagen real.Desafortunadamente, la
wp_get_attachment_image()
función está actualmente (a partir de WordPress 4.4.1) codificada para generar los atributoswidth
yheight
<img>
(vea el ticket # 14110 ), por lo que deberá construir el marcado de la imagen usted mismo. Esto se puede hacer tomando señales dewp_get_attachment_image()
la fuente de :fuente
<img>
bits de generación de atributoswp_get_attachment_image()
, aunque omití las partessrcset
ysizes
utilizadas para las imágenes receptivas. Si es necesario,get_sizeless_attachment_image()
sería aconsejable crear una función .Solución alterna
Hice algunas excavaciones / pruebas centrales y encontré una solución a través del
wp_constrain_dimensions
filtro:Esto parece permitirnos eliminar los atributos de altura y anchura de la imagen generada html de
wp_get_attachment_image()
, sin sacar los cánones reg-ex. También podríamos usar elwp_get_attachment_image_src
filtro de manera similar para eliminar el ancho / alto pero manteniendo la url .Notas
Esta solución se eliminará el
srcset
ysizes
atributos también. Pero también es posible configurar los srcset y tamaños atributos a través del cuarto$attr
argumento de entrada.Como mencionó @bosco, ha cambiado los argumentos de entrada de icono y tamaño en:
Use esto en su lugar:
fuente
Simplemente usé CSS para este. No funciona en todos los escenarios, pero a menudo lo hará. Tomemos una imagen de 300px x 300px:
Esto restringe las dimensiones de la imagen sin perder su relación de ancho a alto. De lo contrario, también puede usar REGEX:
Estas fueron algunas alternativas. Buena suerte.
fuente