web-dev-qa-db-fra.com

Comment puis-je inclure un paramètre comportant un nombre variable de valeurs dans une page de paramètres à l'aide de register_setting?

J'ai une option sur une page de paramètres qui peut avoir entre 1 et 5 valeurs. J'ai des connaissances de base sur la manière de configurer des paramètres à valeur unique à l'aide de l'API Paramètres, mais comment puis-je générer le balisage, etc., pour le paramètre avec un nombre variable de valeurs?

2
ProfK

Si vous utilisez correctement l'API Settings, vous devriez utiliser la fonction add_settings_field. Le troisième argument de cette fonction concerne la fonction de rappel qui générera le code HTML pour le champ de formulaire pour le paramètre individuel. Le Codex déclare:

Fonction qui remplit le champ avec les entrées souhaitées dans le cadre de la forme la plus grande. Le nom et l'id de l'entrée doivent correspondre au $ id attribué à cette fonction. La fonction doit faire écho à sa sortie.

Dans cette fonction de rappel, vous écrivez simplement votre code HTML, exactement comme si WordPress n'était pas impliqué. En tant que tel, vous pouvez configurer des boutons radio, un champ de sélection, une sélection multiple, etc.

Par exemple, supposons que vous utilisiez add_settings_field en tant que tel:

add_settings_field(
    'my_setting_name',
    'My Setting Name',
    'my_setting_callback_function',
    'general',
    'my_settings_section_name'
);

Dans cet extrait de code, la fonction de rappel nommée "my_setting_callback_function" générera le code HTML pour le paramètre. Vous pouvez ensuite faire quelque chose comme:

function my_setting_callback_function() {
?>
    <select name="my_setting_name" id="my_setting_name">
        <option value="1">Enabled</option>
        <option value="0">Disabled</option>
    </select>
<?php
}

Comme vous pouvez le constater, cette fonction génère les différentes valeurs possibles pour ce paramètre.

J'encourage vivement à lire cette partie du Codex: http://codex.wordpress.org/Settings_API . Il fait un bon travail en expliquant l’API des paramètres et l’exemple illustre bien son utilisation. Je trouve que l'API est un peu compliquée; Cependant, il fait ce qu’il devrait faire, donc avec un peu de discipline et une vérification minutieuse, il devrait très bien fonctionner pour vous.

Bonne chance!

3
tollmanz