对于问题的第二部分:在args变量中,可以设置selected 参数设置为数据库中保存的任何内容。有关更多详细信息,请参阅法典here.
我目前正在处理同一个问题,一旦我弄清楚了一切,我会更新并澄清。
EDIT : 可以我做到了。
以下是我的保存功能:
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这是我的回调函数:
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 );
}
希望这有帮助!我只花了一整天就弄明白了。