¿Cómo eliminar las dimensiones codificadas de las imágenes en miniatura?

7 jul 2011, 17:50:20
Vistas: 31.4K
Votos: 16

¿Cómo puedo eliminar los atributos width y height de la imagen en miniatura (post_thumbnail) cuando se inserta con <?php the_post_thumbnail(); ?>?

<img width="800" height="533" src="http://domain.com/wp-content/uploads/2011/02/image.jpg" class="attachment-post-thumbnail wp-post-image" />
6
Comentarios

busca el archivo thumbnail.php, no estoy seguro pero usualmente esos archivos contienen el código fijo

Niraj Chauhan Niraj Chauhan
7 jul 2011 17:54:08

En caso de que te lo preguntes, quiero poder modificar anchos y altos con CSS - más específicamente establecer un ancho máximo y dejar que la altura se ajuste sola en lugar de usar el valor fijo por defecto.

Carson Carson
7 jul 2011 17:54:15

usa firebug para obtener la clase o ID exacta, o dame tu URL

Niraj Chauhan Niraj Chauhan
7 jul 2011 17:56:44

Cambiar cualquier cosa en un archivo fuera del tema (por ejemplo post-thumbnail-template.php) sería una mala idea ya que cualquier actualización de WordPress lo sobrescribiría.

Carson Carson
7 jul 2011 18:10:49

¿Qué te hace pensar que necesitas eliminar los atributos para hacer lo que quieres?

t31os t31os
7 jul 2011 20:27:23

Mira mi comentario anterior..

Carson Carson
11 jul 2011 17:35:06
Mostrar los 1 comentarios restantes
Todas las respuestas a la pregunta 4
2
25

Relacionado: ¿Filtro para eliminar los atributos de dimensiones de las imágenes?

Existe un filtro en post_thumbnail_html que recibe como argumento el elemento HTML completo que representa la imagen destacada del post antes de que se muestre en la página. Puedes eliminar las dimensiones con un poco de expresiones regulares:

add_filter( 'post_thumbnail_html', 'remove_thumbnail_dimensions', 10, 3 );

function remove_thumbnail_dimensions( $html, $post_id, $post_image_id ) {
    $html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );
    return $html;
}
2 ago 2011 02:23:35
Comentarios

No funciona para mí. add_filter( 'post_thumbnail_html', 'remove_thumbnail_dimensions', 10, 3 );

function remove_thumbnail_dimensions( $html, $post_id, $post_image_id ) { if ( wp_is_mobile() ) { $html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html ); }
return $html; }

dlopezgonzalez dlopezgonzalez
11 sept 2014 13:20:46

Esto eliminará los atributos width/height de todas las instancias donde se use the_post_thumbnail().

Dario Zadro Dario Zadro
24 ene 2020 02:03:13
2

podrías simplemente tomar la URL de la miniatura y colocarla tú mismo en una etiqueta img:

<?php
$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'your_thumb_handle' );
?>
<img src="<?php echo $thumbnail['0']; ?>" />
7 jul 2011 18:01:40
Comentarios

Esa es la única solución que he encontrado también, solo esperaba que hubiera una forma de hacerlo sin un método alternativo.

Carson Carson
7 jul 2011 18:09:28

Pero también necesitas consultar los atributos alt y title

MZAweb MZAweb
6 abr 2012 20:41:55
2
add_filter( 'post_thumbnail_html', 'remove_thumbnail_dimensions', 10 );
add_filter( 'image_send_to_editor', 'remove_thumbnail_dimensions', 10 );
add_filter( 'the_content', 'remove_thumbnail_dimensions', 10 );
function remove_thumbnail_dimensions( $html ) {
    $html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );
    return $html;
}

Esto hará el trabajo, "the_content" eliminará los atributos de ancho y alto de todas las imágenes en el contenido del post.

23 ago 2018 17:33:28
Comentarios

Por favor, [edita] tu respuesta y agrega una explicación: ¿por qué eso podría resolver el problema?

fuxia fuxia
23 ago 2018 17:53:54

Para mí, esto también elimina la etiqueta 'figure' que lo contiene y quita el título. :/

MastaBaba MastaBaba
8 feb 2022 13:18:41
0

Prefiero esta solución a continuación ya que no estoy haciendo un reemplazo global con una función. Esto se incorporaría en los archivos de tu tema.

<?php echo preg_replace( '/(width|height)="\d*"/', '', get_the_post_thumbnail( get_the_ID(), 'large' ) ); ?>

Puedes reemplazar "large" con "thumbnail", "medium", "full", o con tu tamaño de imagen personalizado declarado en tu tema.

24 ene 2020 01:24:49