Das Ereignis ‘save_post’ wird ausgetriggers, wenn ich einen neuen Beitrag starten möchte

Ich versuche, ein Formular für das Hochladen von Bildern für eine benutzerdefinierte Diashow für jeden Post hinzuzufügen. Der benutzerdefinierte Post-Typ heißt “Produkt”. Das folgende Snippet erstellt den neuen Post-Typ.

add_action('init','product_register'); function product_register() { $args = array('label' => __('Product Manager'), 'singular-label' => __('Product'), 'public' => true, /*it is open to searches and stuff*/ 'show_ui' => true, /*true implies that you can display a user interface for this post type in the admin panel*/ 'capablitity_type' => 'post', /*this will build the read, edit and build capabilities*/ 'hierarchical' => false, /*this tells you whether a post type is hierarchical*/ 'has_archive' => true, 'supports' => array('title', 'editor', 'thumbnail', 'custom-fields','comments'), 'rewrite' => array('slug' => 'Products', 'with_front' => false)); register_post_type('products', $args); } 

Danach habe ich die Metabox und die ersten Zeilen der function erstellt, die beim Speichern des Beitrags ausgetriggers wird. Das Problem liegt in der function save_files. Trotz der Kontrollen, die ich gesetzt habe, hallt die function immer noch “Checks hat nicht funktioniert”. Ich möchte eine function, die nur ausgeführt wird, wenn ich den Post speichern, nicht, wenn ich post-new.php initialisiere.

 add_action('load-post.php', 'file_uploader_meta'); add_action('load-post-new.php', 'file_uploader_meta'); function file_uploader_meta() { add_action('add_meta_boxes', 'setup_file_upload_meta_box'); add_action('save_post', 'save_files', 10, 2); } //the following function creates the meta box function setup_file_upload_meta_box() { add_meta_box('wp_custom_attachment', 'Slideshow Image Upload', 'display_meta_box', 'products', 'side', 'default'); } //the following function will display your meta box function display_meta_box() { wp_nonce_field(basename(__FILE__), 'image_upload_nonce'); ?> 

All images must be jpg or pngs.

Upload the first slideshow image.

Enter caption for first image.

<input type="text" name="first-image-caption" value="ID, 'first-image-caption', true); ?>" />

Upload the second slideshow image.

Enter caption for second image.

<input type="text" name="second-image-caption" value="ID, 'second-image-caption', true); ?>" />

Upload the third slideshow image.

Enter caption for third image.

<input type="text" name="third-image-caption" value="ID, 'third-image-caption', true); ?>" />

Vielen Dank für Ihre Hilfe.

Solutions Collecting From Web of "Das Ereignis ‘save_post’ wird ausgetriggers, wenn ich einen neuen Beitrag starten möchte"

Sie können Ihren Sicherungshandler vereinfachen, indem Sie prüfen, ob die POST-Variable gesetzt ist. Wenn nicht, muss die Anfrage nicht bearbeitet werden:

 function save_files( $post_id, $post ) { if( ! isset( $_POST['image_upload_nonce'] ) || ! current_user_can( 'edit_post', $post_id ) ) return; // Good to go, handle everything. } 

Für eine Erklärung, warum der Haken save_post feuert, siehe meine andere Antwort .