¿Cómo agregar meta box a la página de administración del plugin?

2

Hay códigos.

 add_action('admin_menu', 'test');

 function test(){       add_menu_page( 'Test plugin', 'Test plugin',
 'manage_options', 'test_plugin_options', 'test_plugin_admin_options'
 ); }

Y está el código 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';  
}

Pero no está funcionando, el meta_box no es apper.

¿Qué puedo hacer mal?

    
pregunta Joci93 22.09.2015 - 12:45

1 respuesta

5

add_meta_boxes es para agregar meta box a los tipos de publicación. Lo que estás buscando es la API de configuración. En su función add_menu_page está llamando a una función llamada test_plugin_admin_options . Esta función mantendrá el contenido de tu página de opciones. También deberá registrar su configuración con 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 } ?>
    
respondido por el WordPress Mike 22.09.2015 - 15:31

Lea otras preguntas en las etiquetas