Stellen Sie das vorgestellte Bild mit wp_insert_post ein

Lesezeit: 3 Minuten

Benutzer-Avatar
Streben gebaut

// Auto post ( Unique File Date ).
$postData = array(
    'post_category' => array( $Category ),
    'post_status' => $Post_Status,
    'post_type' => $Post_Type
);
$post_id = wp_insert_post( $postData );

$getImageFile="http://localhost/Multisite/test2/wp-content/uploads/sites/4/Auto Post/twitter.png";

$attach_id = wp_insert_attachment( $postData, $getImageFile, $post_id );
require_once( ABSPATH . 'wp-admin/includes/image.php' );

$attach_data = wp_generate_attachment_metadata( $attach_id, $getImageFile );

wp_update_attachment_metadata( $attach_id, $attach_data );

set_post_thumbnail( $post_id, $attach_id );

Der obige Code erstellt erfolgreich einen Beitrag, setzt jedoch nicht das Beitragsbild. Ich weiß nicht, was ich hier falsch mache.

  • Das $postData sollte anders sein für wp_insert_post (a Post posten) und wp_insert_attachment (ein Anhang Post).

    – ojrask

    27. Januar 2015 um 9:13 Uhr

  • was soll es denn sein?

    – Aspire gebaut

    27. Januar 2015 um 9:16 Uhr

  • Sehen Sie sich meine Antwort an und probieren Sie es aus. 🙂

    – ojrask

    27. Januar 2015 um 9:17 Uhr

Verwenden Sie anders $postData für den Anhang:

$wp_filetype = wp_check_filetype( $getImageFile, null );

$attachment_data = array(
    'post_mime_type' => $wp_filetype['type'],
    'post_title' => sanitize_file_name( $getImageFile ),
    'post_content' => '',
    'post_status' => 'inherit'
);

$attach_id = wp_insert_attachment( $attachment_data, $getImageFile, $post_id );

Derzeit übergeben Sie die identischen Beitragsdaten an den Beitrag und seinen Anhangsbeitrag.

  • und auch deine $getImageFile Variable muss der Dateipfad zu Ihrem Upload-Verzeichnis sein. Sehen Sie sich das Beispiel im Kodex an codex.wordpress.org/Function_Reference/wp_insert_attachment

    – Dhanuka Nuwan

    27. Januar 2015 um 9:21 Uhr

  • $upload_dir[ 'baseurl' ] ot $upload_dir[ 'path' ] oder $upload_dir[ 'basedir' ]? welcher?

    – Aspire gebaut

    27. Januar 2015 um 9:24 Uhr


  • sagen Sie mir, warum Sie anders verwenden $postData? ich bin damit nicht klar. Danke

    – Aspire gebaut

    27. Januar 2015 um 9:28 Uhr

  • $upload_dir[ 'path' ] wird die Arbeit erledigen

    – Dhanuka Nuwan

    27. Januar 2015 um 9:32 Uhr

  • wp_insert_post und wp_insert_attachment beide erstellen einen neuen “Beitrag” in WordPress posts Tisch. Anhänge sind ein Beitragstyp, ähnlich wie Beiträge oder Navigationsmenüs/-elemente.

    – ojrask

    27. Januar 2015 um 9:32 Uhr

Benutzer-Avatar
Scheich Nadeem

Ich nutze die Funktion wp_upload_bits ist eine neue WordPress-Funktion zum einfachen Hochladen von Bildern. In der zweiten Zeile meines Codes $post ist dein $post_id id und für das Upload-Dateiverzeichnis erstelle ich einen benutzerdefinierten Ordner custom-uploads für Ihr besseres Verständnis oder Sie können das in meiner 4. Codierungszeile entfernen './'. 'custom-uploads' . "https://stackoverflow.com/"

$upload = wp_upload_bits($_FILES["file"]["name"], null, file_get_contents($_FILES["file"]["tmp_name"]));

$post_id = $posts; //set post id to which you need to set post thumbnail
$filename = $upload['file'];
$uploadfile = $uploaddir['basedir'] . "https://stackoverflow.com/". 'custom-uploads' . "https://stackoverflow.com/";

move_uploaded_file($filename, $uploadfile);  // (file name , designation)

$wp_filetype = wp_check_filetype($filename, null );
$attachment = array(
    'post_mime_type' => $wp_filetype['type'],
    'post_title' => sanitize_file_name($filename),
    'post_content' => '',
    'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, $filename, $posts );
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );

wp_update_attachment_metadata( $attach_id, $attach_data );
set_post_thumbnail( $post_id, $attach_id );  // set post thumnail (featured image) for the given post

  • was ist $uploaddir hier?

    – yasaryousuf

    23. August 2021 um 17:59 Uhr

  • @yasaryousuf Ihr Basisverzeichnispfad

    – Scheich Nadeem

    29. August 2021 um 15:59 Uhr

1352730cookie-checkStellen Sie das vorgestellte Bild mit wp_insert_post ein

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy