WordPress Attachments, Bilder und Metadaten nutzen

bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.

Kommentare

  
  1. mo. sagt:

    man frank, was für eine fleissarbeit. ich wusste nicht, dass es noch so viele unterschiedliche funktionen und möglichkeiten gibt. zum thema bilder finde ich gibt es auch noch eine weitere wunderbare funktion, die man seinem theme hinzufügen kann:

    timthumb

    timthumb habe ich by darren hoyt entdeck. er nutzt das php-script für sein erfolgreiches mimbo theme.

    mit timthumb schnappt man sich bilder über eine funktion aus dem eintragsfeld und erstellt automatische thumbnails.

    bei http://www.phlow-magazine.com kommen auf der index-seite kleine bilder vor, die von timthumb verkleinert wurden. ruft man dann den artikel auf erscheint ein größeres cover. im artikel müssen die autoren nur noch das hochgeladene bild benutzen.

    der vorteil: auch mit dieser methode braucht man kein neues benutzerdefiniertes Feld. die arbeit übernimmt das script.

    deine methoden vor allem die mit wp_get_attachment_image() sind noch interessanter und wahrscheinlich auch noch schneller und weniger serverbelastend.

    vielen lieben dank, für den artikel.

  2. Tom sagt:

    Da hat wirklich jemand viiieeel Langeweile gehabt. Ein großes Danke an dich für die Mühe. Ist sehr hilfreich!

  3. Chris sagt:

    Auch von mir ein dickes Dankeschön. Super Ausführlich.

  4. shortee sagt:

    vielen dank, hab in meinem neuen portfolio benutzerdefinierte felder genutzt um bilder anzuhängen. vielleicht sollte ich mir das mit den images aus der gallery nochmal anschauen, ist um einiges komfortabler.

  5. BHF sagt:

    Danke für den Beitrag. Als Nicht IT Mensch habe ich allerdings den Weg gewählt, alle Bilder bei flickr hochzuladen und aus meinem Blog drauf zu verlinken.

    Bernd Helmut Frank

  6. Karsten sagt:

    Auch von mir ein dickes Dankeschön für diese ausführlich Fleissarbeit.
    Endlich einmal eine Zusammenfassung des Themas Blogs und Bilder mit der ich auch etwas anfangen kann. Jetzt bin ich wieder ein Stück schlauer geworden (und Gott weiß wie nötig ich das habe ;-))

  7. Raoul sagt:

    Und wieder mal etwas zum Lernen und archivieren, denn man weiss ja nie , wann man es braucht. Aber immer gut zu wissen, wo man es nachlesen kann.

    Danke und Gruss

    Raoul

  8. Michael sagt:

    Danke für die Ausführung - sehr nützlich und hilfreich - spart ne Menge an Arbeit
    Gruß Michael

  9. the dude sagt:

    Vielen Dank für die wertvollen Informationen!

    LG

  10. Frank, bei get_the_post_image sind die Params vertauscht: Erst die ID, dann die Größe ;)

  11. Vielen Dank für deine Mühe! Hat mir sehr weitergeholfen!

  12. Alex sagt:

    Hallo,

    ich habe ein Bild in einen Artikel eingebunden. Nach einiger Zeit entferne ich dieses Bild und ersetze es durch ein neues. Nun gibt es zu diesem Artikel 2 Attachments, wobei eins aktuell eingebunden ist und das andere Bild nicht eingebunden. Wie kann man sich nur die Bilder ausgeben lassen, die aktuell eingebunden sind? Gibt es dazu einen Tag bzw. eine Abfrage?

    • @Alex: dies geht nur, in dem man den Inhalt parst und den img-Tag sucht; ist aber nicht sonderlich performant.

      
      function fb_find_first_image() {
      	global $post;
      	
      	$first_img = '';
      	ob_start();
      	ob_end_clean();
      	$output = preg_match_all( '/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches );
      	$first_img = $matches[1][0];
      	
      	if ($first_img)
      		echo $first_img;
      }
      

      Die Funktion gibt nun das Bild aus, wenn es eines gibt. Alles andere kannst du die ja dazu bauen.

  13. Alex sagt:

    Ich dachte es gibt dazu auch eine andere Möglichkeit. Aber wie ich grade gesehen habe, ist der komplette html-Code in der Datenbank gespeichert. Ich dachte irgendwo ist hinterlegt welches Bild eingebunden ist.

  14. Jörg sagt:

    Hallo Frank, vielen Dank für diese und alle anderen Infos auf Deinen Seiten... lese immer wieder gerne bei Dri nach was so möglich ist.

    Ich bin nicht sicher ob meine Frage hier hin passt, versuche es aber einfach mal. ;-)
    In diesem und anderen Beispielen wird innerhalb der functions.php die $post_id verwendet. Das habe ich auch versucht, will aber irgendwie nicht.
    Benutzen möchte ich das im Zusammenhang mit Benutzerdefinierten Feldern und hänge mich per Hook an den Mailversand des PlugIns "Contact From 7" dran:
    function mycf7_vor_mailversand($cf7) {
    global $post;
    $anmeldungen = get_post_meta($post->ID, 'Anmeldungen', true);
    $anmeldungen++;
    update_post_meta($post->ID, 'Anmeldungen', $anmeldungen);
    }
    add_action( 'wpcf7_before_send_mail', 'mycf7_vor_mailversand' );
    Ersetze ich in den meta-Aufrufen das $post->ID durch einen fixen Wert, dann funktioniert es, was mir sagt, daß die Aufrufe ansich ok sind und auch die Funktion durchlaufen wird... aber was ist dann falsch?

    Hab versucht über das entsprechende WP-Forum Hilfe zu bekommen, wo ich aber leider keine Rückmeldung bekommen habe.

    Danke für Deine Hilfe.

    • @Jörg: vermutlich ist die Post-ID nicht da, lasse sie doch mal ausgeben:
      mache mal nach global $post; eine harte Ausgabe var_dump($post); exit;; vermutlich ist das Array nicht gefüllt und dann musst die $post erst mal holen; ich weiß nicht, woher das Plugin die hat.

  15. Jörg sagt:

    Hallo Frank.
    Zunächst mal Dank für die schnelle Antwort.
    Allem Anschein nach hattest Du recht, jedoch funktioniert eine Ausgabe - auch print_r - nicht im Zusammenhang mit diesem PlugIn, es bleibt schlicht in einer Endlosschleife stehen... :-(
    Um nicht noch weiter vom eigentlichen Thema abzuschweifen hier die funktionierende Lösung, welche auf eine eigene Funktion des PlugIns "Contact Form 7" zurückgreift:
    $my_postid = wpcf7_special_mail_tag_for_post_data( $output, '_post_id' ) ;
    Gehört zwar nicht zum Inhalt Dienes Posts hier, aber falls jemand mal per Suche hier landet, soll er auch eine Lösung finden. :-)

  16. Niko sagt:

    Hi Frank,

    erst mal danke für den wirklich guten Artikel der mir sehr weiter geholfen hat!!!

    Falls es jemandem hilft, hätte ich noch zwei kleine Ergänzungen.
    Seit WP 3.x kann man mit

    apply_filters( 'get_the_excerpt', $attachment->post_excerpt );

    für alle anderen Werte hilft print_r($attachment);

    den Captiontext eines Bildes auslesen.

    Wer sich die Gallery nachbauen möchte, für den ist sicherlich auch interessant, wie man nach jedem N-ten Attachement z.B. einen Umbruch realisiert...

    $count = count( $attachments );
    if ($count%3== 0) {
    echo ""; }

    Lieben Gruß
    Niko

  17. hamburger sagt:

    hallo, super gemacht, sehr hilfreich.
    ich würde gern, unabhängig von wordpress, beim hochladen einer datei spezielle metatags direkt in die datei schreiben.
    hat jemand eine idee (php-script) wie das gehen könnte?

  18. Anja sagt:

    Hallo,

    gibt es eine Möglichkeit, wie ich in der hausinternen WordPress Gallery (Version3.3) die Links der Bilder ändern kann?

    Im Moment kann ich angeben, daß die Miniaturbilder auf:
    a) Bilddatei oder
    b) Anhang Seite verlinken

    Ich möchte jedoch, das kein Link ausgegeben wird wenn man auf die Gallerie Bilder klickt.

    Vielen Dank für eure Hilfe!

    Gruß

    Anja

  19. Bernhard sagt:

    @ Anja:

    probier mal in der loop-gallery.php

    get_the_ID(), 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ASC') );
    foreach ( $attachments as $attachment_id => $attachment ) {
    echo "";
    echo wp_get_attachment_image( $attachment_id, 'thumbnail' );
    echo "
    ";
    } ?>

    Hallo Frank,

    Deine Tipps sind wirklich Klasse!
    Kannst Du mir eventuell noch einen Tipp geben, wie ich folgendes simpel erscheinende Problem lösen kann, mit dem ich nun schon seit Stunden kämpfe:
    Ich habe eine Galerie, die mittels loop-gallery.php in der Seite page-gallery.php ausgegeben wird:

    get_the_ID(), 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ASC') );
    foreach ( $attachments as $attachment_id => $attachment ) {
    echo "";
    echo wp_get_attachment_image( $attachment_id, 'thumbnail' );
    echo "

    ";
    } ?>

    Jetzt möchte ich auf jeder Seite außerhalb des eigentlichen Content fünf Thumbnails anzeigen, die jeweils zur Einzelansicht des entsprechenden Galeriebildes verlinkt sind.
    Mein Ansatz dazu sind zwei benutzerdefinierte Felder, eines für die ID der Galerie (damit ich die Möglichkeit habe, auf anderen Seiten Bilder aus einer anderen Galerie einzubinden) und eines, in dem ich die IDs der Bilder angebe.

    Da stehe ich nun schon seit Stunden auf dem Schlauch und würde mich freuen, wenn Du mir einen Hinweis geben kannst.

    Viele Grüße
    Bernhard

    • @Benrhard: wenn ich das richtig verstehe, dann willst du die Standard-Gallerie pro Post/Page ohne Shortcode direkt im Template einbinden; wenn ja, dann kannst du den Shortcode [[Gallery]] einfach via Funktion aufrufen.

  20. Bernhard sagt:

    Hallo Frank,

    Danke!

    An dieser Lösung war ich gestern Abend schon ganz nah dran - jetzt funktioniert sie halbwegs.
    Der Fehler ist mir beim Einsetzen der Werte aus den benutzerdefinierten Feldern in den Shortcode passiert...

    Neben dem von Dir verlinkten Artikel ist da der WordPress-Codex hilfreich.

    "Halbwegs" sage ich, weil WordPress für meinen Geschmack bei der Standard-Galerie viel zu viel unnötiges HTML schreibt (bei icontag bleibt mir nichts anderes, als ein überflüssiges span zu schreiben...; am Ende kommt ein noch überflüssigeres [br /], alles garniert mit überflüssigen class).
    Außerdem zeigt sich diese Lösung bisher völlig resistent, was die Reihenfolge der Bilder angeht: die sollte der Reihenfolge entsprechen, wie ich die IDs in das benutzerdefinierte Feld schreibe.

    Würde mich freuen, wenn Du dazu noch eine Idee hast!

    Viele Grüße
    Bernhard

  21. Bernhard sagt:

    Hallo Frank,

    hab eine Lösung gefunden:
    http://snipplr.com/view/27051/wordpress-27-gallery-styles-fix/

    Das noch ein bisschen angepasst, braucht man nur noch die IDs der Bilder in ein benutzerdefiniertes Feld zu schreiben und bekommt eine Galerie ohne das ganze Markup, das WordPress normalerweise schreibt...

    Viele Grüße
    Bernhard

    • @Bernhard: super; bin einfach noch nicht dazu gekommen; bin randvoll und finde keine Zeit für viele Sachen, das Mail-Konto ist auch im Überlauf.

© 2014, since 2005 bueltge.de [by:ltge.de] · Theme is built by ThemeShift