You can use wp_dropdown_pages
. For example
add_action( 'add_meta_boxes', 'myplugin_add_custom_box' );
/* Adds a box to the main column on the Post edit screens */
function myplugin_add_custom_box() {
add_meta_box(
'myplugin_sectionid',
__( 'My Post Section Title', 'myplugin_textdomain' ),
'myplugin_inner_custom_box',
'post'
);
}
/* Prints the box content */
function myplugin_inner_custom_box( $post ) {
$dropdown_args = array(
'post_type' => 'page'
'name' => 'myplugin[page]',
'sort_column' => 'menu_order, post_title',
'echo' => 1,
);
// Use nonce for verification
wp_nonce_field( plugin_basename( __FILE__ ), 'myplugin_noncename');
//Dropdown of pages
wp_dropdown_pages( $dropdown_args );
}
See also the Codex on handling metabox data.