settings_fields()
Définition : settings_fields() produit les champs cachés nécessaires à un formulaire de réglages WordPress, notamment ceux utilisés pour l’identification du groupe et la protection par nonce lors d’une soumission standard.
Terminologie
Terme officiel : settings_fields()
Autres appellations : Champs cachés de réglages
À quoi cela sert
Cette fonction connecte une page de configuration personnalisée au traitement natif de options.php. Elle évite de construire à la main plusieurs informations nécessaires à l’acheminement et à la protection du formulaire.
Comment cela fonctionne
Elle reçoit le nom du groupe passé à register_setting() et imprime les champs hidden requis, ainsi qu’un nonce correspondant. Elle produit du HTML directement ; sa place est à l’intérieur du formulaire et non dans une fonction de traitement de données.
Dans quel contexte l’utiliser
À utiliser dans chaque formulaire Settings API autonome qui soumet des réglages à options.php.
Exemple concret
Un plugin a déclaré le groupe atoolpha_demo et prépare un formulaire sous son écran d’administration.
Exemple de code commenté
<?php
// À l’intérieur du callback d’une page d’administration autorisée.
if ( current_user_can( 'manage_options' ) ) {
echo '<form method="post" action="options.php">';
settings_fields( 'atoolpha_demo' );
do_settings_sections( 'atoolpha-demo-page' );
submit_button( 'Enregistrer' );
echo '</form>';
}
// Prérequis : les options et sections sont déclarées.
Explication pas à pas de l’exemple
Le formulaire envoie vers options.php. settings_fields() produit les paramètres et le nonce de groupe, do_settings_sections() affiche les contrôles déclarés et submit_button() fournit le bouton. L’accès au callback est vérifié avec manage_options.
Résultat attendu
La soumission peut être traitée par les mécanismes WordPress si les options du groupe existent et si l’utilisateur possède les autorisations nécessaires.
Précautions et limites
Le nonce n’est pas un contrôle de permission. Le groupe doit être identique à celui de register_setting() ; les champs doivent porter les bons noms.
À ne pas confondre
settings_fields() imprime les données cachées de sécurité et de routage ; do_settings_sections() affiche les champs visibles.
Termes associés
- Settings API
- register_setting()
- do_settings_sections()
