Aller Anfang ist nicht einfach und vor allem wen man mit WordPress ein wenig ausfallende Sachen möchte. Wie zum Beispiel ein oder mehrere Bilder in einem Beitrag mit einem extra DIV wrappen und dazu noch eine MetaInformation (get_post_meta) dazu zuschreiben.
Da mich diese Aufgabe ein paar Stunden gekostet hat, hier die Lösung für alle die so was suchen.
Aufgabenbeschreibung:
- Wrappe ein Bild mit einem extra DIV / SPAN
- Packe zu dem Bild ein eigenes Copyright Meta-Tag vom „Credit-Tracker-Plugin„
- ohne das Template zu bearbeiten
Lösung:
Die Funktion „add_filter“ in der function.php
<!--?php // add class to image add_filter('the_content', 'addSpanOnImage', 12); add_filter('get_comment_text', 'addSpanOnImage'); add_filter('post_thumbnail_html', 'addSpanOnImage', 10, 3 ); function addSpanOnImage ($content,$postID="",$imageID="") { global $post; $newContent = $content; $copyMeta = empty($copyMeta) ? get_post_meta( $imageID, 'credit-tracker-author', true ) : ""; if(!empty($copyMeta)){ $copyright = '<span class="copyright">'.$copyMeta.'</span>'; $pattern = '/(<img([^>]*)>)/i'; $replacement = '<span class="copyrightframe">'.$copyright.'$1</span>'; $newContent = preg_replace( $pattern, $replacement, $newContent ); } else { $args = array( 'post_type' => 'attachment', 'numberposts' => -1, 'post_status' => null, 'post_parent' => $post->ID ); $attachments = get_posts( $args ); foreach($attachments as $attach){ $copyright = '<span class="copyright">'.get_post_meta( $attach->ID, 'credit-tracker-author', true ).'</span>'; $replacement = '<span class="copyrightframe">'.$copyright.'$1</span>'; $newContent = preg_replace('/(<img.+?class="(.*)wp-image-'.$attach->ID.'(.*)".+?-->)/i', $replacement, $newContent); } } return $newContent; } ?>