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.