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

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

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']; ?>" />

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.


Bitte bearbeiten Sie Ihre Antwort und fügen Sie eine Erklärung hinzu: Warum könnte dies das Problem lösen?
— Fuxia
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.