Zeigen Sie Informationen aus benutzerdefinierten Feldern im HTML aller Bilder an

Okay, ich habe den ganzen Tag daran gearbeitet und kann die Lösung nirgends finden. Ich habe ein benutzerdefiniertes Feld innerhalb des Bildupload-Bildschirms erstellt (Informationen finden Sie zuerst hier ). Das Feld speichert den Namen eines Fotografen, um ihm / ihr Kredit zu geben. Hier ist alles in Ordnung.

Was ich nicht herausfinden kann, ist, wie man diese Informationen in die Titeldaten eines jeden Bildes auf der Seite bekommt. Ich möchte, dass mein Feld für Image Credit sich an alle Bildtitel auf der Website anfügt, sodass jeder Bildtitel etwas wie “Mein Titel (nach Fotografenname)” lesen würde.

Was ich herausgefunden habe, ist nahe, aber nicht gut genug. Ich kann die Informationen aus meinem benutzerdefinierten Feld abrufen, indem ich “get_children ()” vom Typ “image” für den vorhandenen Post verwende und dann “get_post_meta ()” für meinen benutzerdefinierten Feldnamen für jedes Ergebnis aufruft. Ich kann diese Informationen dann verwenden, um sie den Post-Featured-Bildern hinzuzufügen, indem ich die Titeleigenschaften in “get_the_post_thumbnail ()” ändere, wenn ich sie anrufe. Was ich brauche, ist in der Lage zu sein, so etwas wie diese Site auf allen Bildern zu machen, nicht nur auf den vorgestellten.

Ich denke, irgendwo im Core sollte definiert sein, wie Bilder angezeigt werden. Vielleicht könnte ich dies mit einer gleichnamigen Datei in meinem eigenen Theme überschreiben oder indem ich eine function deklariere, die das Standardverhalten außer Kraft setzt. Vielleicht gibt es einen Filter oder einen Haken, den ich benutzen könnte. Ich kann jedoch keine Dokumentation finden, die mir hilft, und mir geht es um Ideen.

Alle Gedanken würden sehr geschätzt, auch wenn sie nur Teilideen sind.

Hinweis: Ich habe versucht, alle meine functionen für eine einfache Referenz zu verknüpfen, aber Spam-Prävention würde nicht zulassen, dass ich so viele Links posten, also werde ich sie hier stattdessen auflisten:

  • codex.wordpress.org/Function_Reference/get_children
  • codex.wordpress.org/Function_Reference/get_post_meta
  • codex.wordpress.org/Function_Reference/get_the_post_thumbnail

Solutions Collecting From Web of "Zeigen Sie Informationen aus benutzerdefinierten Feldern im HTML aller Bilder an"

Sie können einen Filter mithilfe des Hooks “wp_get_attachment_image_attributes” erstellen. Platziere das in deiner functions.php Datei.

function filter_image_title($attr, $attachment = null){ //Find your $photographer with $attachment->ID $attr['title'] .= ' (' . __('Photographed by', 'foobar') . ' ' . $photographer . ')'; return $attr; } add_filter('wp_get_attachment_image_attributes', 'filter_image_title', 10, 2); 

Danke an @Brian, ich habe folgendes geschrieben. Aus irgendeinem Grund wirkt sich dies jedoch nur auf die hervorgehobenen Bilder aus. Wenn der Post kein vorgestellten Bild hat, hat dies keine Auswirkungen auf das erste Bild, wie ich es erwartet hätte. Ich habe meinen vorherigen Code, der das angezeigte Bild beeinflussen sollte, vollständig auskommentiert, sodass er kein Holdover sein kann. Irgendwelche Ideen?

 function filter_image_title($attr, $attachment = null){ //Find photo credit with $attachment->ID $attachment_credit = get_post_meta($attachment->ID, '_waz-image-credit', true); //Store original image info $attr['title'] = get_post($attachment->ID)->post_title; $attr['alt'] = get_post_meta($attachment->ID, '_wp_attachment_image_alt', true); //If there's no ALT text, use the title (pre-credit addition) if(!$attr['alt']) $attr['alt'] = $attr['title']; //If a credit has been added to the image, add this to the title if($attachment_credit) $attr['title'] .= ' (' . 'Photographed by' . ' ' . $attachment_credit . ')'; return $attr; } add_filter('wp_get_attachment_image_attributes', 'filter_image_title', 10, 2);