Für ein einfaches Plugin oder eine functions.php-Datei
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 );
Oh mein Gott! Danke!!! Tolle Funktion! So einfach und doch so mächtig!
Die URLs funktionieren nicht, kann mir jemand helfen? :/
Das funktioniert nicht, weil $url sich nicht auf die Bildquellen-URL bezieht, sondern auf den Link, in den das Bild eingeschlossen werden soll.
Aber selbst wenn man wp_get_attachment_image_src() oder get_image_tag() zur Generierung des Bildes verwendet, akzeptiert der WYSIWYG-Editor das figure-Element nicht und fügt jedes Mal eine neue Zeile davor und danach ein, wenn der Artikel gespeichert wird.
Ich habe beschlossen, dafür einen Shortcode zu verwenden und das Bild auszutauschen, wenn der Artikel gerendert wird.
Ich habe diese Probleme auch, und zusätzlich kann ich die im Editor gewählte Größe (groß, mittel, Thumbnail) nicht finden, die wp_get_attachment_image_src() als Argument benötigt.
Der $url-Parameter benötigt nur eine geringfügige Anpassung mit einer zusätzlichen Codezeile – versuchen Sie Folgendes
Hinweis: Dieser Filter im Allgemeinen (sowohl das Original als auch meine Version) ist nicht rückwirkend. Er filtert Bilder nur, wenn sie über den Editor in den Beitrag eingefügt werden – er korrigiert keine Bilder in bereits veröffentlichten Beiträgen.
Zweiter Hinweis: Sie können einem Bild keine Bildunterschrift mehr hinzufügen, nachdem es bereits in einen Beitrag eingefügt wurde. Die Bildunterschrift muss beim Einfügen des Bildes hinzugefügt werden. Wenn Sie bereits ein Bild eingefügt haben und eine Bildunterschrift hinzufügen möchten, löschen Sie das Bild aus dem Beitragseditor und fügen Sie es erneut mit einer Bildunterschrift ein.
Nun eine Frage: Das alles funktioniert großartig, aber was ist, wenn ich das Bild in ein a href-Tag einfügen möchte? Es scheint nicht möglich zu sein, den Link einzufügen, er wird beim Einfügen herausgefiltert. Natürlich kann ich es manuell machen, aber das scheint den Zweck zu verfehlen. Ich bin kein PHP- oder WordPress-Genie, daher möchte ich nichts Großes kaputt machen (scheint so einfach zu sein wie das Hinzufügen eines „if (urllink)“-Dings wie bei der Bildunterschrift, aber auch hier will ich es nicht vermasseln).
Wofür ist diese Zeile?
add_filter( 'image_send_to_editor', 'html5_insert_image', 10, 9 );Was ist ihr Zweck? Und wie funktioniert sie?
An Kyle und wahrscheinlich Leute, die später hierher kommen.
Das Hinzufügen des URL-Parameters zum Tag ist ziemlich einfach.
Ändern Sie einfach die Funktion zu
function html5_insert_image($html, $id, $caption, $title, $align, $url, $size, $alt) {$url = wp_get_attachment_url($id);
$src = wp_get_attachment_image_src( $id, $size, false );
$html5 = "<a href='$url'><figure class='align$align'>";
$html5 .= "<img src='$src[0]' alt='$alt' />";
if ($caption) {
$html5 .= "<figcaption>$caption</figcaption>";
}
$html5 .= "</figure></a>";
return $html5;
}
add_filter( 'image_send_to_editor', 'html5_insert_image', 10, 9 );
Ich habe gerade die Version ausprobiert, auf die Kadir basierend auf Chris' Code verlinkt hat, und sie scheint sowohl bei neuen Beiträgen als auch bei früheren Beiträgen in WordPress 4.1 gut zu funktionieren. Danke Kadir und Chris!
Ok, das funktioniert nicht, wenn Sie die Ausrichtung des Bildes ändern. Das heißt, wenn Sie im Bilddialog auf rechts ausrichten stellen, passiert nichts. Sie müssen es also in der Popup-Leiste einstellen.
Aber wenn Sie es dann nach links ausrichten müssen, wird es nicht aktualisiert.
Sie können auch den
[caption]-Shortcode aktualisieren.Hallo,
Zu diesem Zeitpunkt sind keine Bearbeitungen (Ausrichtung) nach dem Einfügen möglich.
zerosignalproductions hat einen Gist mit Unterstützung für Anker und TinyMCE zum Entfernen von Figure-Tags mit den Bildern erstellt: https://gist.github.com/zerosignalproductions/8325712
Ich habe ihn angepasst, um auch Ausrichtungsänderungen mit den Mouseover-Buttons zu unterstützen: https://gist.github.com/netzgestaltung/7722e46cb39eca253afb2f7b724d511d
Vielleicht findet es jemand nützlich...
Ich denke, Sie müssen das in die erste Zeile einfügen
$url = wp_get_attachment_url($id);