Ich kann keine Unterstützung für Metabox-Daten erhalten, die benötigt werden

Ich versuche, Meta-Box auf einer Post erstellen / bearbeiten Seite zu erstellen. Ich stand vor dem Problem:

1. Wenn ich einen Beitrag von Grund auf neu anlege, werden die Daten aus meiner Metabox wie erwartet gespeichert
2. Wenn ich versuche, einen vorhandenen Post mit neuen Metaboxdaten zu aktualisieren, werden die Daten nicht gespeichert.

Ich experimentierte mit ein paar Action-Hooks, die ich von WordPress-Docs bekam und keiner von ihnen scheint zu funktionieren. Bitte überprüfen Sie den folgenden Code:

<? add_action('save_post','callback'); // works when a post is created from scratch add_action('update_post','callback'); // doesn't work add_action('pre_post_update','callback'); // doesn't work add_action('publish_post','callback'); // doesn't work function callback( $post_ID ) { echo "THE POST IS SAVED"; // Code for saving metabox here ... }; 

Ich sehe keinen Grund, warum dieses Ding nicht wie erwartet funktioniert. Wenn jemand mit den gleichen Problemen konfrontiert wurde, bitte helfen Sie! ich bin verzweifelt

Einen schönen Tag noch!

Solutions Collecting From Web of "Ich kann keine Unterstützung für Metabox-Daten erhalten, die benötigt werden"

Der save_post Hook ist der einzige, den Sie benötigen. Außerdem fehlt in Ihrer Callback-function ein Parameter. save_post Sie in diesem Beispiel nach:

 /** * Save post metadata when a post is saved. * * @param int $post_id The ID of the post. */ function save_book_meta( $post_id ) { /* * In production code, $slug should be set only once in the plugin, * preferably as a class property, rather than in each function that needs it. */ $slug = 'book'; // If this isn't a 'book' post, don't update it. if ( $slug != $_POST['post_type'] ) { return; } // - Update the post's metadata. if ( isset( $_REQUEST['book_author'] ) ) { update_post_meta( $post_id, 'book_author', sanitize_text_field( $_REQUEST['book_author'] ) ); } if ( isset( $_REQUEST['publisher'] ) ) { update_post_meta( $post_id, 'publisher', sanitize_text_field( $_REQUEST['publisher'] ) ); } // Checkboxes are present if checked, absent if not. if ( isset( $_REQUEST['inprint'] ) ) { update_post_meta( $post_id, 'inprint', TRUE ); } else { update_post_meta( $post_id, 'inprint', FALSE ); } } add_action( 'save_post', 'save_book_meta' ); 

Das Beispiel kann auf der Codex-Seite für den save_post werden .