Cum elimini dimensiunile codificate ale imaginilor miniatură?
Cum pot elimina atributele width și height din post_thumbnail când este inserat cu <?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" />

Legături conexe: Filtru pentru eliminarea atributelor de dimensiune ale imaginilor?
Există un filtru pe post_thumbnail_html
care primește ca argument întregul element HTML reprezentând imaginea thumbnail a postării înainte de a fi afișat pe pagină. Puteți elimina dimensiunile cu ajutorul unui regex:
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;
}

Nu funcționează pentru mine. 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;
}

poți să obții direct URL-ul imaginii în miniatură și să-l folosești într-un tag img:
<?php
// Obține URL-ul imaginii în miniatură folosind ID-ul atașamentului
$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'your_thumb_handle' );
?>
<img src="<?php echo $thumbnail['0']; ?>" alt="Miniatura articolului" title="Miniatura articolului" />

// Adăugăm filtre pentru a elimina dimensiunile (lățime/înălțime) din miniaturi și imagini
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 );
/**
* Elimină atributele de width și height din codul HTML al imaginilor
* @param string $html Codul HTML original
* @return string Codul HTML modificat fără dimensiuni
*/
function remove_thumbnail_dimensions( $html ) {
// Utilizăm expresie regulată pentru a înlocui width="123" și height="456" cu șir vid
$html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );
return $html;
}
Acest cod va face treaba, "the_content" va elimina toate dimensiunile (lățimea și înălțimea) din imaginile incluse în conținutul postărilor.

Prefer această soluție de mai jos, deoarece nu fac o înlocuire globală cu o funcție. Aceasta ar fi încorporată în fișierele temei tale.
<?php echo preg_replace( '/(width|height)="\d*"/', '', get_the_post_thumbnail( get_the_ID(), 'large' ) ); ?>
Poți înlocui "large" cu "thumbnail", "medium", "full", sau dimensiunea personalizată a imaginii declarată în tema ta.
