J'essaie d'ajouter des options à mon plugin mais je ne comprends pas pourquoi utiliser add_settings_section
alors que vous pourriez simplement utiliser register_setting
?
J'enregistre ma page de paramètres via add_menu_page
comme suit:
add_menu_page(
__( 'My plugin' ),
__('My plugin'),
'manage_options',
'my_plugin_page_slug',
'render'
);
//renders the page
function render () { ?>
<div class="wrap">
<form action="options.php" method="post">
<?php
settings_fields( 'my-awesome-plugin-settings' );
do_settings_sections( 'my-awesome-plugin-settings' );
?>
//render settings
<h2>Section title</h2>
<div class="form__section">
<input type="checkbox" name="setting_1" value="1" <?php checked(1, get_option('setting_1'), true); ?> />
<label><?php _e('Label example') ?></label>
</div>
<!-- more settings here -->
<?php submit_button(); ?>
</form>
</div>
<?php }
Ensuite, j'ajoute des paramètres comme suit:
function register_my_cool_plugin_settings() {
//register our settings
register_setting( 'my-awesome-plugin-settings', 'setting_1' );
....
}
Et cela semble bien fonctionner.
Quels sont les avantages d'utiliser add_settings_section
par rapport à cette approche?
Un point qui est probablement moins important, est que vous n'avez pas besoin de vous préoccuper du style des en-têtes et des étiquettes, car l'API de paramètres s'en chargera.
L'aspect le plus important est la conception de logiciels. Plus vous aurez d’options différentes, moins votre code sera maintenable si vous l’écrivez simplement dans une fonction, et vous voudrez en fait le scinder en fonctions plus petites pour le rendre plus lisible et pouvoir effectuer des tests unitaires pour le tester. Puisque vous obtenez tout cela "gratuitement" lorsque vous utilisez les paramètres de l'API, vous devriez avoir une bonne justification pour ne pas l'utiliser (vous voulez peut-être quelque chose qui ne ressemble pas du tout à une page d'administrateur habituelle).