Ich bin mir nicht ganz sicher warum, aber ich habe mit allerlei verschiedenen Lösungen herumgespielt, aber keiner scheint zu funktionieren. Ich habe update_post_meta
mit add_post_meta
gehandelt und es sogar in 3 Bedingungen aufgeteilt, um zu sehen, ob es hinzugefügt, aktualisiert oder gelöscht wurde, aber nichts scheint zu funktionieren.
Das Problem ist, dass die Daten beim Update nicht gespeichert und angezeigt werden. Ich weiß, dass ‘_desc’ eingestellt ist, da es Daten anzeigt, wenn ich die()
(direkt vor dem Update). Vorschläge, wie ich herausfinden kann, warum es nicht aktualisiert wird?
/** Add the Meta Box **/ function add_custom_meta_box() { global $meta_box; add_meta_box( 'short-desc', // $id 'Short Description', // $title 'show_custom_meta_box', // $callback 'post', // $page 'side', // $context 'high'); // $priority } add_action('add_meta_boxes', 'add_custom_meta_box'); /** The Callback **/ function show_custom_meta_box() { global $post; // Use nonce for verification echo ''; // get value of this field if it exists for this post $meta = get_post_custom($post->ID); // Begin the field table echo ''; echo 'Enter A Short Description: '; echo '
'; // end table } /** Save the Data **/ function save_custom_meta($post) { // verify nonce if (!wp_verify_nonce($_POST['shortdesc_meta_box_nonce'], basename(__FILE__))) return $post->ID; // check autosave if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post->ID; // check permissions if (!current_user_can('edit_post', $post->ID)) return $post->ID; //echo $_POST['_desc']; //die(); if(isset($_POST['_desc'])) update_post_meta($post->ID, '_desc', strip_tags($_POST['_desc'])); } add_action('save_post', 'save_custom_meta', 1, 2);
Dies liegt daran, dass die s ave_post- Hook-function die post-ID als Parameter annimmt und nicht das Objekt post, so dass die save_custom_meta-function wie folgt aussehen sollte.
/** Save the Data **/ function save_custom_meta($post_id) { // verify nonce if (!wp_verify_nonce($_POST['shortdesc_meta_box_nonce'], basename(__FILE__))) return $post_id; // check autosave if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post_id; // check permissions if (!current_user_can('edit_post', $post_id)) return $post_id; //echo $_POST['_desc']; //die(); if(isset($_POST['_desc'])) update_post_meta($post_id, '_desc', strip_tags($_POST['_desc'])); } add_action('save_post', 'save_custom_meta', 1, 2);