Ankerlink an den Anfang der Seite
stormtrooper 1343877 1920
Generic filters
Filter by Kategorien
,

Der Beitrag, geschriebem am 27. April 2016, ist schon etwas älter und könnte womöglich nicht mehr aktuell sein

Beim Speichern von Beiträgen sollte automatisch ein Beitragsbild gesetzt werden, wenn keines da war. Dafür abzufragen ob ein Beitrag ein Beitragsbild hat, gibt es die Funktion has_post_thumbnail($post_id).

Wenn diese Abfrage false zurückgab, sollte es weitergehen bis zu set_post_thumbnail(). Das funktionierte auch – bei neuen Beiträgen. Beim Überarbeiten und Speichern eines bereits veröffentlichten Beitrags ignorierte die Funktion die Zeile if ( hast_post_thumbnail($post_id) ) return; jedoch.

Das wurde in dem Fall schnell auffällig, weil Beitragsbilder anhand eines Links in einem benutzerdefinierten Feld von der da gespeicherten Website geholt und in die Mediathek kopiert wurden, und es sich dabei je Beitrag stets um dasselbe Bild handelte. Die Mediathek sah bald aus wie eine Klonfabrik. Jedes Mal neu speichern desselben Beitrags erzeugte einen neuen Klon, der dann neu als Beitragsbild gesetzt wurde.

Der Grund dafür ist, dass WordPress (sofern nicht bewusst anders konfiguriert) Revisionen von Beiträgen anlegt. Man kann bei save_post nur beim Neuanlegen sicher davon ausgehen, sich im „richtigen“ Beitrag zu befinden. Revisionen sind Kinder des Originalbeitrags, und daher führt die Frage, ob es bereits ein Beitragsbild gibt, zu einem Ergebnis, das sich auf die Revision bezieht. Um sicher zu gehen, dass nicht jedes Mal neu Speichern einen neuen Bildklon erzeugt, ist zusätzlich zu ermitteln, ob ggf. die Parent ID bereits ein post_thumbnail hat, und falls ja, auf Download, Import und setzen als Beitragsbild zu verzichten.

function pptf_set_webimage_as_featured( $post_id ) {
if ( $parent_id = wp_is_post_revision( $post_id ) ) {
	$post_id = $parent_id;
}
if ( has_post_thumbnail( $post_id ) ) return;
...
}

Bitte das Kommentarfeld nicht für Supportanfragen nutzen; hier kann kein Support angeboten werden. Die Angabe von Name oder E-Mail-Adresse ist optional, ein Spitzname wäre trotzdem nett.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Name und E-Mail-Adresse (beides optional, da alle Kommentare moderiert werden) werden dauerhaft gespeichert. Über dieses Formular kann jeder Zeit die Löschung persönlicher Daten oder Kommentare angefordert werden; die Anfrage wird nicht veröffentlicht und nach der Bearbeitung gelöscht. IP-Adressen, die mit Kommentaren gespeichert werden, werden nach zwei Monaten automatisch gelöscht.

Ihre Nachricht wird möglicherweise zur Spam-Prüfung an OpenAI (USA) weitergeleitet. Weitere Informationen finden Sie in unserer Datenschutzerklärung.