Frontend-Post-Erstellung inklusive Bildanhang

Ich kodiere Frontend-Posting und das beinhaltet Meta-Daten von Bildern. Ich habe einige gesucht und über den folgenden Code nachgedacht,

function my_submission_processor() { $post_data = array( 'post_title' => $_POST['post_title'], 'post_content' => $_POST['post_content'], 'post_status' => 'draft' ); $post_id = wp_insert_post( $post_data ); $upload = wp_upload_bits( $_FILES['image']['name'], null, file_get_contents( $_FILES['image']['tmp_name'] ) ); $wp_filetype = wp_check_filetype( basename( $upload['file'] ), null ); $wp_upload_dir = wp_upload_dir(); $attachment = array( 'guid' => $wp_upload_dir['baseurl'] . _wp_relative_upload_path( $upload['file'] ), 'post_mime_type' => $wp_filetype['type'], 'post_title' => preg_replace('/\.[^.]+$/', '', basename( $upload['file'] )), 'post_content' => '', 'post_status' => 'inherit' ); $attach_id = wp_insert_attachment( $attachment, $upload['file'], $post_id ); require_once(ABSPATH . 'wp-admin/includes/image.php'); //this is what I wondering $attach_data = wp_generate_attachment_metadata( $attach_id, $upload['file'] ); wp_update_attachment_metadata( $attach_id, $attach_data ); update_post_meta( $post_id, '_thumbnail_id', $attach_id ); wp_redirect( site_url() . '/thank-you/' ); die(); 

}

Überprüfe die untere Zeile des Codes,

 require_once(ABSPATH . 'wp-admin/includes/image.php'); 

Ich weiß nicht wie das funktioniert und warum image.php hier gebraucht wird?

Der obige Code ist von hier. https://premium.wpmudev.org/blog/upload-file-funktionen/

Solutions Collecting From Web of "Frontend-Post-Erstellung inklusive Bildanhang"

Nun, Sie haben nicht erwähnt, ob Ihr Code funktioniert oder nicht, weil der Blog, dem Sie folgen, erstaunlich ist. Und Sie sollten die Lösung von diesem Post bekommen haben.

Und bezüglich deiner Frage ..

 require_once(ABSPATH . 'wp-admin/includes/image.php'); 

Dies ist eine WordPress-coredatei, die alle Manipulationen an Bildern und deren Metadaten vornimmt.

Warum verwendet der Code diese Datei?

Die von Ihnen benötigten functionen sind keine häufig verwendeten functionen. Diese Datei wird von WordPress für alle Manipulationen im Backend verwendet. Aber wenn Sie ein Bild von einer externen Quelle erhalten möchten oder etwas manipulieren, ist es besser, es in WordPress zu machen.

Die functionen, die Sie im Code sehen, wie wp_generate_attachment_metadata und wp_update_attachment_metadata hängen vollständig von image.php ab und ohne diese 2 functionen können Bildmetadaten nicht richtig eingestellt werden.

Ich hoffe, das triggers den Zweifel und hilft dir irgendwie. 🙂