Wie entferne ich fest codierte Miniaturbildabmessungen?

15

Wie kann ich beim Einfügen mit die Attribute width und height aus dem post_thumbnail entfernen <?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
quelle
Suchen Sie nach thumbnail.php-Datei, nicht sicher, aber in der Regel enthalten die Dateien die harte Codierung
Niraj Chauhan
Für den Fall, dass Sie sich fragen, möchte ich in der Lage sein, Breite und Höhe mit CSS zu ändern - genauer gesagt, eine maximale Breite festzulegen und die Höhe selbst festlegen zu lassen, anstatt standardmäßig die fest codierte zu verwenden.
Carson
benutze firebug, um die genaue Klasse oder ID zu erhalten, oder gib mir deine URL
Niraj Chauhan
2
Eine Änderung in einer Datei außerhalb des Themas (zum Beispiel post-thumbnail-template.php) wäre eine schlechte Idee, da jedes WordPress-Update diese überschreiben würde.
Carson
Was lässt Sie glauben, dass Sie die Attribute entfernen müssen, um das zu tun, was Sie wollen?
t31os

Antworten:

25

Verwandte: Filter zum Entfernen von Bildbemaßungsattributen?

Es gibt einen Filter, post_thumbnail_htmlder als Argument das vollständige HTML-Element erhält, das das Post-Thumbnail-Bild darstellt, bevor es auf der Seite wiedergegeben wird. Sie können die Dimensionen mit etwas Regex herausfiltern:

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;
}
goldenapples
quelle
Bei mir funktioniert es nicht. add_filter ('post_thumbnail_html', 'remove_thumbnail_dimensions', 10, 3); Funktion remove_thumbnail_dimensions ($ html, $ post_id, $ post_image_id) {if (wp_is_mobile ()) {$ html = preg_replace ('/ (width | height) = \ "\ d * \" \ s /', "", $ html ); } return $ html; }
dlopezgonzalez
5

Sie könnten einfach die URL des Daumens nehmen und sie selbst in ein img-Tag einfügen:

<?php
$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'your_thumb_handle' );
?>
<img src="<?php echo $thumbnail['0']; ?>" />
Milo
quelle
1
Das ist die einzige Lösung, auf die ich auch gestoßen bin. Ich habe nur gehofft, dass es eine Möglichkeit gibt, dies ohne eine Problemumgehung zu tun.
Carson
Sie müssen aber auch die Attribute alt und title abfragen
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;
}

Dies erledigt die Aufgabe, "the_contnet" entfernt alle Breite und Höhe des Post-Content-Textbilds.

Herzog Yin
quelle
Bitte bearbeiten Sie Ihre Antwort und fügen Sie eine Erklärung hinzu: Warum könnte dies das Problem lösen?
Fuxia