Il y a les codes.
add_action('admin_menu', 'test');
function test(){ add_menu_page( 'Test plugin', 'Test plugin',
'manage_options', 'test_plugin_options', 'test_plugin_admin_options'
); }
Et il y a le code add_meta_box:
function inf_custome_box() {
add_meta_box( 'inf_meta', __( 'Meta Box Title', 'test' ), 'custome_box_callback', 'test_plugin_options' );
}
add_action( 'add_meta_boxes', 'inf_custome_box' );
function custome_box_callback() {
echo 'This is a meta box';
}
Mais ça ne marche pas, la meta_box n'est pas apparente.
Que puis-je faire de mal?
add_meta_boxes
permet d'ajouter des méta-boîtes aux types de publication. Ce que vous recherchez, c'est l'API Settings. Dans votre fonction add_menu_page
, vous appelez une fonction nommée test_plugin_admin_options
. Cette fonction tiendra le contenu de votre page d'options. Vous devrez également enregistrer vos paramètres avec register_setting()
.
//add menu page
add_action('admin_menu', 'test');
function test(){
add_menu_page( 'Test plugin', 'Test plugin', 'manage_options', 'test_plugin_options', 'test_plugin_admin_options' );
}
//register settings
add_action( 'admin_init', 'register_test_plugin_settings' );
function register_test_plugin_settings() {
//register our settings
register_setting( 'test-plugin-settings-group', 'new_option_name' );
register_setting( 'test-plugin-settings-group', 'some_other_option' );
}
//create page content and options
function test_plugin_admin_options(){
?>
<h1>Test Plugin</h1>
<form method="post" action="options.php">
<?php settings_fields( 'test-plugin-settings-group' ); ?>
<?php do_settings_sections( 'test-plugin-settings-group' ); ?>
<table class="form-table">
<tr valign="top">
<th scope="row">New Option 1:</th>
<td><input type="text" name="new_option_name" value="<?php echo get_option( 'new_option_name' ); ?>"/></td>
</tr>
<tr valign="top">
<th scope="row">New Option 2:</th>
<td><input type="text" name="some_other_option" value="<?php echo get_option( 'some_other_option' ); ?>"/></td>
</tr>
</table>
<?php submit_button(); ?>
</form>
<?php } ?>