Hallo allerseits
irgendwie habe ich mich in einem Problem verrannt und vielleicht kann mir jemand einen Schubs in die richtige Richtung geben.
Das wäre sehr nett.
Mein Problem:
Ich möchte gerne das von Wordpress generierte HTML verändern. Konkret: Wenn ich in einem Beitrag ein verlinktes Bild einfüge, erscheint im Texteditor folgendes:
Code
<a href="http://www.xyz.ch/bild.jpg"><img class="alignnone wp-image-3820 size-thumbnail" src="http://www.xyz.ch/bild-212x150.jpg" alt="Alternativtext" width="212" height="150" /></a>
Nun möchte ich gerne ein zusätzlicher tag (caption) nach dem a-tag einfügen. Dieser soll gefüttert werden mit der Beschreibung des Bildes aus der Mediathek. Also:
Code
<a caption="<strong>Legende:</strong>Das ist die Beschreibung zum Bild" href="http://www.xyz.ch/bild.jpg"><img class="alignnone wp-image-3820 size-thumbnail" src="http://www.xyz.ch/bild-212x150.jpg" alt="Alternativtext" width="212" height="150" /></a>
Lustigerweise hab ich das Ganze hingekriegt, wenn es sich um mehrere Bilder (als Galerie) handelt (eingefügt als Shortcode).
Die Lösung sieht so aus:
Code
/* Funktioniert erst bei Gallerien, nicht bei einzeln eingesetzten Bildern*/
function add_title_attachment_link($link, $id = null) {
$id = intval( $id );
$_post = get_post( $id );
//Nimmt Beschreibung, wenn vorhanden,
$post_title = esc_attr( $_post->post_content );
echo ($id);
if( empty( $post_title ) ) {
$thumb_id = intval( $id );
//Nimmt Alternativtext, falls vorhanden
$post_title = get_post_meta($thumb_id, '_wp_attachment_image_alt', true);
// echo $post_title;
if( empty( $post_title ) ) {
//Nimmt Titel-Attribut, falls vorhanden
$post_title = esc_attr( $_post->post_title );
}
}
return str_replace('<a href', '<a caption="'. $post_title .'" href', $link);
}
add_filter('wp_get_attachment_link', 'add_title_attachment_link', 10, 2);
Alles anzeigen
Wenn mir jemand einen Tipp geben könnte, wäre ich sehr dankbar!
beste Grüsse
Matthias