Support » Allgemeine Fragen » Aus dem Beitrag entfernte Bilder werden trotzdem als Attachment gelistet

  • grollum

    (@grollum)


    Hallo zusammen,

    ich bastel gerade an einem Theme und wollte die in eine Seite eingefügten Bilder auslesen. Leider stoße ich dabei aber auf einige Probleme.

    Über die Funktion get_children bekomme ich ohne weiteres alle mit einem Post verbundenen Anhänge gelistet, allerdings auch Anhänge die ich aus dem Post gelöscht habe werden mir weiterhin ausgegeben. Wie kann ich das vermeiden?

    Ist das ein Bug, ist meine Installation evtl. fehlerhaft?

    Viele Grüße,
    Grollum

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Moderator Bego Mario Garde

    (@pixolin)

    Wenn Du in einen Beitrag durch Ziehen und Ablegen ein Bild hinzufügst, passieren mehrere Dinge auf einmal:

    1. Das Bild wird auf deinen Webserver übertragen. WordPress speichert Dateinamen und Ort (Upload-Verzeichnis) sowie die ID des Beitrags in der Datenbank (d.h. das Bild ist ein „Attachment zum Beitrag mit der ID …“).
    2. Der HTML-Code zur Anzeige wird im Beitrag hinzugefügt.

    Löschst Du dieses Bild aus dem Beitrag, passiert nur folgendes:

    1. Der HTML-Code zur Anzeige wird aus dem Beitrag gelöscht.

    Würde auch der erste Schritt rückgängig gemacht, stünde das Bild nicht mehr für künftige/weitere Beiträge zur Verfügung. Da hier aber keine Änderung vorgenommen wird, bleibt das Bild ein Attachment des Beitrags, obwohl es gar nicht mehr im Beitrag vorhanden ist.

    Deine Vorgehensweise, mit get_children alle Bilder eines Beitrags auszulesen, schlägt aber auch noch wegen einem anderen Grund fehl: Ein Bild kann immer nur Attachment von einem Beitrag sein. Verwende ich das gleiche Bild in einem weiteren Beitrag, is es kein Attachment dieses Beitrags!
    Um dem noch ein Sahnehäubchen aufzusetzen: Fügst Du ein Bild in die Mediathek ein und verwendest es dann in einem Beitrag als Beitragsbild („Featured Image“), ist es trotzdem kein Attachment des Beitrags.

    Für Dein Theme bleibt also entweder die Möglichkeit, den Beitragsinhalt zu Filtern und Bilder anhand des <img>-Tags mit einer Regular Expression auszulesen oder Du verwendest benutzerdefinierte Felder (Custom Fields), mit denen der Anwender Bilder für die entsprechende Stelle im Theme auswählt.

    Thread-Starter grollum

    (@grollum)

    OK, danke für die Erklärungen. Genau sowas dachte ich mir.
    Das Problem beim auslesen der IMG Tags via Regex ist, dass ich dann nur die jeweilig eingefügte Größe bekomme und nicht die Bilder in der vollen Größe. Ich habe es jetzt mit dem Gallery-Feature realisiert. Dort bekomme ich alles was ich brauche.

    Moderator Bego Mario Garde

    (@pixolin)

    Das Problem beim auslesen der IMG Tags via Regex ist, dass ich dann nur die jeweilig eingefügte Größe bekomme und nicht die Bilder in der vollen Größe.

    Doch, das geht. Wenn Du Bilder zur Mediathek hinzufügst, werden Kopien in verschiedenen Größen angelegt. Die Größen werden immer nach dem Muster

    /-[0-9]+x[0-9]+'.$ext.'/i

    gebildet. Ziehst Du diesen Wert mit preg_replace() raus, hast Du den Namen der Originaldatei.

    kleines Bild: <img src=“strand-640×480.jpg“>
    Original : <img src=“strand.jpg“>

    Thumbnail: <img src=“palme-150×150.jpg“>
    Original: <img src=“palme.jpg“>

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Das Thema „Aus dem Beitrag entfernte Bilder werden trotzdem als Attachment gelistet“ ist für neue Antworten geschlossen.