Bagaimana Anda menghapus dimensi gambar thumbnail yang dikodekan dengan keras?

15

Bagaimana saya bisa menghapus atribut width dan height dari post_thumbnail saat menyisipkan <?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" />
Carson
sumber
mencari file thumbnail.php, tidak yakin tetapi biasanya file tersebut mengandung hard coding
Niraj Chauhan
Jika Anda bertanya-tanya, saya ingin dapat memodifikasi lebar dan tinggi dengan CSS - lebih khusus mengatur lebar-max dan membiarkan tinggi mengatur sendiri daripada default ke yang kode keras.
Carson
gunakan pembakar untuk mendapatkan kelas atau ID yang tepat, atau berikan saya URL Anda
Niraj Chauhan
2
Mengubah apa pun dalam file di luar tema (misalnya post-thumbnail-template.php) akan menjadi ide yang buruk karena setiap pembaruan WordPress akan menimpanya.
Carson
Apa yang membuat Anda berpikir Anda perlu menghapus atribut untuk melakukan apa yang Anda inginkan?
t31os

Jawaban:

25

Terkait: Filter untuk menghapus atribut dimensi gambar?

Ada filter post_thumbnail_htmlyang menerima sebagai argumennya elemen html lengkap yang mewakili gambar thumbnail posting sebelum digaungkan ke halaman. Anda dapat memfilter dimensi dengan sedikit 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;
}
lempengan emas
sumber
Itu tidak bekerja untuk saya. 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 ('/ (lebar | tinggi) = \ "\ d * \" \ s /', "", $ html ); } kembalikan $ html; }
dlopezgonzalez
5

Anda bisa mengambil url ibu jari dan meletakkannya di tag img sendiri:

<?php
$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'your_thumb_handle' );
?>
<img src="<?php echo $thumbnail['0']; ?>" />
Milo
sumber
1
Itulah satu-satunya solusi yang saya temui juga, hanya berharap ada cara untuk melakukannya tanpa penyelesaian.
Carson
Tetapi Anda juga perlu menanyakan atribut alt dan judul
MZAweb
0
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;
}

ini akan melakukan pekerjaan, "the_contnet" akan menghapus semua lebar dan tinggi gambar teks konten posting.

Duke Yin
sumber
Harap edit jawaban Anda , dan tambahkan penjelasan: mengapa itu bisa menyelesaikan masalah?
fuxia