Speichere den Wert eines wp_dropdown_pages

Ich habe ein wp_dropdown_pages basierend auf der WordPress-Codex-Seite erstellt

 global $post; $args = array( 'date_format' => get_option('date_format'), 'depth' => 0, 'echo' => 1, 'post_type' => 'page', 'post_status' => 'publish', 'sort_column' => 'menu_order, post_title', 'sort_order' => 'ASC', 'value_field' => 'post_title'); wp_dropdown_pages($args); 

Dies zeigt das Dropdown-Menü mit allen seinen Seiten an.

Ich habe zwei Probleme.
Das Hauptproblem ist, dass ich nicht weiß, wie man das in der database speichert.
Ich bin es gewohnt, es so zu machen:

 update_post_meta($post->ID, 'url', $_POST['url']); 

Aber das funktioniert nicht.

Das zweite Problem, das ich habe, ist, dass ich die Option ausgewählt haben möchte, die in der database gespeichert ist. Wenn also eine Seite gespeichert wird, sollte sie mir mitteilen, welche Seite gespeichert ist.

Hoffe, dass irgendjemand mich erleuchten kann. Bitte teile mir wie das funktioniert und nicht nur eine Lösung damit ich das verstehe …. 🙂

M.

Solutions Collecting From Web of "Speichere den Wert eines wp_dropdown_pages"

Für den zweiten Teil Ihrer Frage: In Ihrer args-Variable können Sie das ausgewählte Argument auf das setzen, was in Ihrer database gespeichert ist. Sehen Sie den Codex für weitere Details hier .

Ich arbeite gerade an dem gleichen Thema, ich werde updaten und klären, sobald ich alles herausgefunden habe.

EDIT: Okay! ICH HABE ES GEMACHT.

Hier ist meine Speicherfunktion:

 function my_custom_meta_save( $post_id ) { // Checks save status $is_autosave = wp_is_post_autosave( $post_id ); $is_revision = wp_is_post_revision( $post_id ); $is_valid_nonce = ( isset( $_POST[ 'my_custom_nonce' ] ) && wp_verify_nonce( $_POST[ 'my_custom_nonce' ], basename( __FILE__ ) ) ) ? 'true' : 'false'; // Exits script depending on save status if ($is_autosave || $is_revision || !$is_valid_nonce ) { return; } // Checks for input and sanitizes/saves if needed if ( isset( $_POST[ 'meta_key' ] ) ) { update_post_meta( $post_id, 'meta_key', $_POST[ 'meta_key' ] ); } } add_action( 'save_post', 'my_custom_meta_save' ) 

Annnnd hier ist meine callbackfunktion:

 function my_custom_meta_callback() { // Get the stored value from the database global $post; $meta = get_post_meta( $post->ID, 'sos_internal_gallery', true); // TO DO: Exclude galleries that are already being displayed elsewhere $args = array( 'echo' => true, 'name' => 'sos_internal_gallery', 'id' => 'sos_internal_gallery', 'show_option_none' => 'Select a slider', 'post_type' => 'sosslider', 'sort_column' => 'post_title', 'selected' => $meta ); // Create drop down that lists all published sliders wp_dropdown_pages( $args ); } 

Hoffe das hilft! Es dauerte nur den ganzen Tag, um es herauszufinden.