Präfix wäre dann WP 3.8 ;)
Nun ich habe mich totgesucht, totge-programmiert und totgetestet. Nun bin ich also an dem Punkt angekommen, bei dem ich jemanden fragen muss :grin:
Mit einem externen Script füge ich Artikel in meine Wordpress-Installation ein. Und das klappt auch sehr gut. Zusätzlich soll noch ein Artikelbild angelegt werden. Das geht so weit auch. Aber leider ist es nicht skaliert. Nun habe schon einiges gelesen zum Thema skalieren von Artikelbildern (post-thumbnails) und soweit verstehe ich die Funktionsweise dieser Funktionen auch. Doch alle haben sie etwas gemeinsam, das ich nicht verstehe: Bei all diesen Funktionen kann als Parameter zwar die Grösse angegeben werden, nicht aber um welchen Post (post id zb.) es sich handelt. Ich frage mich darum immer: "woher soll die Funktion dann wissen, welches Thumbnails sie verkleinern soll?".
Ein Beispiel wäre die Funktion [COLOR=#0000BB][FONT=Consolas]the_post_thumbnail[/FONT][/COLOR][COLOR=#007700][FONT=Consolas]( [/FONT][/COLOR][COLOR=#0000BB][FONT=Consolas]$size[/FONT][/COLOR][COLOR=#007700][FONT=Consolas], [/FONT][/COLOR][COLOR=#0000BB][FONT=Consolas]$attr [/FONT][/COLOR][COLOR=#007700][FONT=Consolas]);[/FONT][/COLOR].
Ich habe aber schon einen Ansatz gefunden wie dieser:
[COLOR=#0000BB][FONT=Consolas]get_the_post_thumbnail[/FONT][/COLOR][COLOR=#007700][FONT=Consolas]( [/FONT][/COLOR][COLOR=#0000BB][FONT=Consolas]$post_id[/FONT][/COLOR][COLOR=#007700][FONT=Consolas], [/FONT][/COLOR][COLOR=#0000BB][FONT=Consolas]$size[/FONT][/COLOR][COLOR=#007700][FONT=Consolas], [/FONT][/COLOR][COLOR=#0000BB][FONT=Consolas]$attr [/FONT][/COLOR][COLOR=#007700][FONT=Consolas]);[/FONT][/COLOR]
Das würde einleuchten, aber funktionieren tut es dennoch nicht. Die Grösse bleibt unverändert.
So und nun hoffe ich, Ihr könnt mir da helfen. Der Post selbst wird mit wp_insert_post() geschrieben. Hier noch der Code-Auszug davon, wie ich das Thumbnail erstelle und setze:
$wp_filetype = wp_check_filetype(basename($flyer), null );
$wp_upload_dir = wp_upload_dir();
$attachment = array(
'guid' => $wp_upload_dir['url'] . '/' . basename( $flyer ),
'post_mime_type' => $wp_filetype['type'],
'post_title' => preg_replace( '/\.[^.]+$/', '', basename( $flyer ) ),
'post_content' => '',
'post_status' => 'inherit'
);
$bild_id = wp_insert_attachment( $attachment, $flyer, $postId );
update_post_meta($postId, '_thumbnail_id', $bild_id );
Da weiss ich nicht genau ob es tatsächlich korrekt ist, funktionieren tut es aber. Wäre übrigens toll, wenn es cropped und nicht verzogen ist dann.
Und danke 8-)