Deklarieren Sie eine globale Variable, die für andere functionen verwendet werden kann

Ich habe AJAX Image Upload-function, wo ich attachment_id Wert erhalten kann. Ich möchte das als globale Variable speichern und es in einer anderen function verwenden, die post-thumbnail festlegt, wenn es vorhanden ist.

Dies ist, was ich bisher habe und nicht funktioniert.

Bild hochladen

 function write_here_featured_image_upload() { //var_dump($_FILES); // Temporary post id $post_id = 0; // These files need to be included as dependencies when on the front end. require_once( ABSPATH . 'wp-admin/includes/image.php' ); require_once( ABSPATH . 'wp-admin/includes/file.php' ); require_once( ABSPATH . 'wp-admin/includes/media.php' ); // Let WordPress handle the upload. global $attachment_id; $attachment_id = media_handle_upload('file' , $post_id ); $image_attributes = wp_get_attachment_image_src( $attachment_id, 'thumbnail' ); echo $image_attributes[0]; die(); } add_action( 'wp_ajax_write_here_img_upload', 'write_here_featured_image_upload' ); 

Post-function hinzufügen

 function write_here_add_new_post() { $post_id = wp_insert_post($new_post); //echo "Post Added ".$post_id; if(isset($attachment_id)){ set_post_thumbnail( $post_id, $attachment_id ); } } 

global $attachment_id scheint nicht zu funktionieren. Was ist der richtige Weg, dies zu tun?

Solutions Collecting From Web of "Deklarieren Sie eine globale Variable, die für andere functionen verwendet werden kann"

Unter Berücksichtigung Ihrer Kommentare zu Ihrer Frage sollten Sie Folgendes tun:

  • Ihre AJAX-function sollte die Anhangs-ID an den Client zurückgeben
  • Das Front-End-Skript sollte diese Antwort erfassen und die Anhangs-ID irgendwo speichern oder einfach ein verstecktes Eingabefeld in Ihrem Formular ausfüllen
  • Wenn Sie das gesamte Formular senden, fügen Sie die Anhangs-ID zum POST hinzu. Wenn Sie ein ausgeblendetes Eingabefeld ausgefüllt haben, wird die Anhangs-ID automatisch zum POST hinzugefügt.

Vergessen Sie nicht, beim Übermitteln des Formulars Sicherheitsüberprüfungen durchzuführen – ist der aktuelle Benutzer ein Autor des Posts mit der ID “Anhangs-ID”?