Artikelbild per PHP verkleinern

  • 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-)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!