Come rimuovere le dimensioni hardcoded delle immagini thumbnail?

7 lug 2011, 17:50:20
Visualizzazioni: 31.4K
Voti: 16

Come posso rimuovere gli attributi width e height dal post_thumbnail quando viene inserito 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
Commenti

cerca il file thumbnail.php, non sono sicuro ma di solito quei file contengono il codice hardcoded

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

Nel caso te lo stessi chiedendo, voglio poter modificare larghezze e altezze con il CSS - più specificatamente impostare una max-width e far sì che l'altezza si regoli automaticamente piuttosto che usare quella hardcoded di default.

Carson Carson
7 lug 2011 17:54:15

usa firebug per ottenere la classe o ID esatto, oppure dammi il tuo URL

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

Modificare qualsiasi cosa in un file al di fuori del tema (ad esempio post-thumbnail-template.php) sarebbe una cattiva idea poiché qualsiasi aggiornamento di WordPress lo sovrascriverebbe.

Carson Carson
7 lug 2011 18:10:49

Cosa ti fa pensare che devi rimuovere gli attributi per fare ciò che vuoi?

t31os t31os
7 lug 2011 20:27:23

Guarda il mio commento sopra...

Carson Carson
11 lug 2011 17:35:06
Mostra i restanti 1 commenti
Tutte le risposte alla domanda 4
2
25

Correlato: Filtro per rimuovere gli attributi di dimensione dell'immagine?

Esiste un filtro su post_thumbnail_html che riceve come argomento l'intero elemento html che rappresenta l'anteprima del post prima che venga visualizzata nella pagina. Puoi rimuovere le dimensioni con un po' di 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 ago 2011 02:23:35
Commenti

Non funziona per me. 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 set 2014 13:20:46

Questo rimuoverà width/height da tutte le istanze dove viene usato the_post_thumbnail().

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

potresti semplicemente prendere l'URL della miniatura e inserirlo tu stesso in un tag img:

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

È anche l'unica soluzione che ho trovato, speravo solo ci fosse un modo per farlo senza un escamotage.

Carson Carson
7 lug 2011 18:09:28

Ma devi anche interrogare gli attributi alt e title

MZAweb MZAweb
6 apr 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 ) {
    // Rimuove gli attributi width e height dalle immagini
    $html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );
    return $html;
}

Questo codice farà il lavoro, "the_content" rimuoverà tutti gli attributi width e height dalle immagini nel contenuto del post.

23 ago 2018 17:33:28
Commenti

Per favore [modifica] la tua risposta e aggiungi una spiegazione: perché questa soluzione potrebbe risolvere il problema?

fuxia fuxia
23 ago 2018 17:53:54

Per me, questo rimuove anche il tag 'figure' che contiene l'immagine e elimina la didascalia. :/

MastaBaba MastaBaba
8 feb 2022 13:18:41
0

Preferisco questa soluzione qui sotto poiché non sto effettuando una sostituzione globale con una funzione. Questo verrebbe incorporato nei file del tuo tema.

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

Puoi sostituire "large" con "thumbnail", "medium", "full" o con la tua dimensione personalizzata di immagine dichiarata nel tema.

24 gen 2020 01:24:49