Sabit kodlu küçük resim boyutlarını nasıl kaldırırsınız?


15

Eklerken genişlik ve yükseklik niteliklerini post_thumbnail öğesinden nasıl kaldırabilirim <?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" />

thumbnail.php dosyasını bulun, emin değilim, genellikle genellikle sabit kodlama içeriyor
Niraj Chauhan

Merak ediyorsanız, genişlikleri ve yüksekliği CSS ile değiştirmek istiyorum - daha spesifik olarak bir maksimum genişlik ayarlayın ve yüksekliğin varsayılan olarak sabit kodlanmış olana ayarlanmasına izin verin.
Carson

tam sınıf veya kimlik almak için kundakçı kullanın veya bana URL'nizi verin
Niraj Chauhan

2
Herhangi bir WordPress güncellemesinin üzerine yazacağı için temanın dışındaki bir dosyadaki herhangi bir şeyi değiştirmek (örneğin post-thumbnail-template.php) kötü bir fikir olacaktır.
Carson

İstediğiniz şeyi yapmak için özellikleri kaldırmanız gerektiğini düşündüren nedir?
t31os

Yanıtlar:


25

İlgili: Resim boyutu nitelikleri kaldırılsın mı?

post_thumbnail_htmlArgümanı, sayfaya yansıtılmadan önce yazı küçük resmini temsil eden tam html öğesini alan bir filtre var. Boyutları biraz normal ifadeyle filtreleyebilirsiniz:

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;
}

Benim için çalışmıyor. 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 ('/ (genişlik | yükseklik) = \ "\ d * \" \ s /', "", $ html ); } $ html döndür; }
dlopezgonzalez

Bu, genişliği / yüksekliği the_post_thumbnail()kullanılan tüm örneklerden kaldıracaktır .
Dario Zadro

5

başparmağın URL'sini alıp bir img etiketine kendiniz koyabilirsiniz:

<?php
$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'your_thumb_handle' );
?>
<img src="<?php echo $thumbnail['0']; ?>" />

1
Bu da karşılaştığım tek çözüm, sadece bir çözüm olmadan bunu yapmanın bir yolu olduğunu umuyordu.
Carson

Ancak alt ve başlık özelliklerini de sorgulamanız gerekir
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;
}

bu iş yapacak, "the_contnet" tüm içerik içeriği metin resim genişliği ve yüksekliğini kaldıracaktır.


Lütfen yanıtınızı düzenleyin ve bir açıklama ekleyin: bu sorunu neden çözebilir?
fuxia

0

Bu çözümü aşağıda bir işlevle global yerine koymadığım için tercih ediyorum. Bu, tema dosyalarınıza dahil edilir.

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

"Büyük" ü "küçük resim", "orta", "dolu" veya temanızda belirtilen özel resim boyutunuzla değiştirebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.