Cum elimini dimensiunile codificate ale imaginilor miniatură?

7 iul. 2011, 17:50:20
Vizualizări: 31.4K
Voturi: 16

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" />
6
Comentarii

caută fișierul thumbnail.php, nu sunt sigur dar de obicei acele fișiere conțin codul hardcodat

Niraj Chauhan Niraj Chauhan
7 iul. 2011 17:54:08

În caz că te-ai întrebat, vreau să pot modifica lățimile și înălțimile cu CSS - mai exact să setez o lățime maximă și să las înălțimea să se auto-ajusteze în loc să folosească cea hardcodată implicit.

Carson Carson
7 iul. 2011 17:54:15

folosește firebug pentru a obține clasa sau ID-ul exact, sau dă-mi URL-ul tău

Niraj Chauhan Niraj Chauhan
7 iul. 2011 17:56:44

Modificarea oricărui element dintr-un fișier în afara temei (de exemplu post-thumbnail-template.php) ar fi o idee proastă, deoarece orice actualizare WordPress ar suprascrie modificările.

Carson Carson
7 iul. 2011 18:10:49

Ce te face să crezi că trebuie să elimini atributele pentru a face ceea ce dorești?

t31os t31os
7 iul. 2011 20:27:23

Vezi comentariul meu de mai sus..

Carson Carson
11 iul. 2011 17:35:06
Arată celelalte 1 comentarii
Toate răspunsurile la întrebare 4
2
25

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;
}
2 aug. 2011 02:23:35
Comentarii

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

dlopezgonzalez dlopezgonzalez
11 sept. 2014 13:20:46

Aceasta va elimina lățimea/înălțimea din toate instanțele unde este folosit the_post_thumbnail().

Dario Zadro Dario Zadro
24 ian. 2020 02:03:13
2

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" />
7 iul. 2011 18:01:40
Comentarii

Aceasta este singura soluție pe care am găsit-o și eu, doar speram că există o cale de a o face fără o soluție alternativă.

Carson Carson
7 iul. 2011 18:09:28

Dar trebuie să interoghezi și pentru atributele alt și title

MZAweb MZAweb
6 apr. 2012 20:41:55
2
// 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.

23 aug. 2018 17:33:28
Comentarii

Te rog [editează] răspunsul tău și adaugă o explicație: de ce ar putea rezolva problema?

fuxia fuxia
23 aug. 2018 17:53:54

Pentru mine, aceasta elimină și tag-ul 'figure' care conține imaginea și îndepărtează caption-ul. :/

MastaBaba MastaBaba
8 feb. 2022 13:18:41
0

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.

24 ian. 2020 01:24:49