J'aimerais disposer d'une metabox pour que l'utilisateur puisse sélectionner dans une liste déroulante une page du site Web. Je dois enregistrer le choix de l'utilisateur afin de pouvoir l'utiliser ultérieurement. Ma question est donc: comment puis-je créer un metabox qui listera toutes mes pages?
Vous pouvez utiliser wp_dropdown_pages
. Par exemple
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 );
}
Voir aussi le Codex sur la gestion des données de métabox.