Salve o valor de um wp_dropdown_pages

Criei wp_dropdown_pages base na página do Codex do WordPress

 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); 

Isso exibe o menu suspenso com todas as suas páginas.

Tenho dois problemas.
O principal problema é que eu não sei como salvar isso no database.
Estou acostumado a fazê-lo assim:

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

Mas isso não funciona.

O segundo problema que tenho é que eu quero que a opção selecionada seja salva no database. Então, se uma página estiver salva, ele deve me dizer qual a página salva.

Espero que alguém possa me iluminar. Por favor, compartilhe como isso funciona e não apenas uma solução para que eu possa entender …. 🙂

M.

Solutions Collecting From Web of "Salve o valor de um wp_dropdown_pages"

Para a segunda parte da sua pergunta: na sua variável args, você pode definir o argumento selecionado para o que quer que seja salvo no seu database. Veja o códice para mais detalhes aqui .

Atualmente estou trabalhando no mesmo assunto, vou atualizar e esclarecer uma vez que eu descubra tudo.

EDIT: Ok! EU FIZ ISSO.

Aqui está a minha function de salvar:

 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 aqui é a minha function de retorno de chamada:

 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 ); } 

Espero que isto ajude! Só me levou o dia todo para descobrir.