Für Ihre functions.php-Datei oder ein Funktionalitäts-Plugin
function html5_insert_image($html, $id, $caption, $title, $align, $url) {
$html5 = "<figure id='post-$id media-$id' class='align-$align'>";
$html5 .= "<img src='$url' alt='$title' />";
if ($caption) {
$html5 .= "<figcaption>$caption</figcaption>";
}
$html5 .= "</figure>";
return $html5;
}
add_filter( 'image_send_to_editor', 'html5_insert_image', 10, 9 );
Es nimmt auch, was Sie als Bildunterschrift eingeben, und fügt es innerhalb des <figure>-Tags als <figcaption> ein. Beispiel für eingefügten Code
<figure id='post-18838 media-18838' class='align-none'>
<img src='//youresite.com/wp-content/uploads/2012/10/image.png' alt='Title of image'>
<figcaption>Caption for image</figcaption>
</figure>
Das ist nett, aber es kann verbessert werden. :)
function html5_insert_image($html, $id, $caption, $title, $align, $url) { $src = wp_get_attachment_image_src( $id, $size, false ); $html5 = "<figure id='post-$id media-$id' class='align$align'>"; $html5 .= "<img src='$src[0]' alt='$title' width='$src[1]' height='$src[2]' />"; $html5 .= "</figure>"; return $html5; } add_filter( 'image_send_to_editor', 'html5_insert_image', 10, 9 );Beachten Sie, dass
$urlnicht die URL der Bildquelle enthält, sondern den Wert des Feldes „Link-URL“ aus dem Fenster „Medien hinzufügen“. Die URL der tatsächlichen Bildquelle überwp_get_attachment_image_src()und$idzu erhalten, wäre viel sicherer.Ich persönlich würde auch den
$caption-Teil vermasseln, was über denimage_add_caption_shortcode-Filter erfolgen sollte. Aber die obige Funktion *könnte* eine Anweisung für optionale Links zu Bildern verwenden.@Caspar
Danke für diesen Hinweis; ich kann keine Dokumentation zum
image_add_caption_shortcode-Filter finden. Hätten Sie vielleicht Lust, das zu erweitern oder mir Dokumentation dazu zu geben?@Chris, vielen Dank, dass Sie das letztes Jahr gepostet haben; es hat mir bei einem Projekt wirklich den Hintern gerettet!
Verdammt, das scheint in WordPress 3.5 nicht zu funktionieren. Ich konnte nicht verstehen, warum niemand dieses Snippet aufgegriffen hat, das nicht funktionierte, aber ein schneller Wechsel zu einem lokalen Host, der 3.4 ausführt, zeigt, dass es einwandfrei funktionierte. Frage ist: Was hat sich geändert / kaputt gemacht?
Alles Gute, Karl
Dieses kleine Snippet gefällt mir wirklich gut! Ich habe es gerade bei meinem neuesten Build ausprobiert und es hat ohne Probleme funktioniert! Danke fürs Teilen Chris!
Funktioniert nicht auf 3.6.1
Gibt es Änderungen, um es an neue Versionen anzupassen?
Grüße
E
Funktioniert bei mir auf einer 3.6.1-Installation einwandfrei.
Ein Problem mit solchem benutzerdefinierten HTML-Code für Bilder
Wenn Sie versuchen, ein eingebettetes Bild aus einem Beitrag zu löschen, löscht wysiwyg nur ein
<img/>(oder<a><img/></a>), hinterlässt aber<figure>"leer"</figure>.Das ist wirklich sehr schlecht. Und ich muss eine Lösung finden… Jede Hilfe. Auch nur ein Hinweis in die richtige Richtung, wo ich suchen soll, wird geschätzt.
Hallo, vielen Dank für all die Hilfe bisher. Auf WP 3.7 hatte ich einige Schwierigkeiten mit dem bisherigen Code auf der Seite. Ich habe damit herumgespielt und verwende jetzt den folgenden Code, um schöne HTML-Figuren und Bildunterschriften auszugeben
Danke Leute, aber was mache ich, wenn manche Bilder Links zur Großansicht haben?
Danke für den Hack, aber Jovian hat Recht: Es funktioniert nicht mit TinyMCE. Daher ist es leider praktisch nutzlos – alles wird durcheinandergebracht, wenn der Endbenutzer versucht, Bilder zu löschen oder zu verschieben. :-(
Irgendwelche Ideen, irgendjemand…?
alter Beitrag, aber vielleicht hilft das jemandem
https://gist.github.com/zerosignalproductions/8325712
Danke für den Code! Ich wollte auch responsive Bilder damit haben. Ich bin eigentlich kein Programmierer, aber so habe ich es zum Laufen gebracht, indem ich die ausgewählte Größe als Fallback verwende. Bitte lassen Sie mich wissen, wie das intelligenter geschrieben werden kann. Ich hatte Probleme, alle Arrays in einer Zeile zu haben, daher die mehreren Zeilen von ‚$html .=‘
@ Tobias
Das ist sehr cool und funktioniert wie ein Zauber, aber…
Welche Codezeilen kann ich auskommentieren, um das srcset zu entfernen?
Wie füge ich den Filter auf einen bestimmten "Medien hinzufügen"-Button auf einem anderen Formular hinzu?
Wenn Sie möchten, dass das
<figure>-Element entfernt wird (oder jedes andere übergeordnete Element, in das Sie Ihr Bild einpacken), wenn ein Benutzer das Foto löscht, hier ist ein kleines, raffiniertes TinyMCE-Plugin, das ich geschrieben habe und das Sie in WP integrieren können