Utilisation de API de configuration my $ sanitize_callback fonction de validation ressemble à ceci:
(...)
if($type == "foo") {
$valid_input[$id] = $option[$id];
}
else if($type == "bar") {
$valid_input[$id] = wp_filter_nohtml_kses($input[$id]);
}
(...)
C'est presque pareil que dans ce grand thème de Chip Bennett: https://github.com/chipbennett/oenology/blob/master/functions/options-register.php#L95
Après la soumission du formulaire, toutes les options sont mises à jour et les valeurs sont remplacées par $ input.
Que se passe-t-il si je ne souhaite pas mettre à jour l'un d'eux (disons que c'est $type
est multiple_settings
) mais crée plutôt un tableau et y ajoute de nouvelles options? Comment je fais ça?
J'essayais des choses comme:
else if($type == "multiple_settings") {
$valid_input[$id][] = $input[$id]; // creates an array but still overwrites
$valid_input[$id] = array_Push($valid_input[$id], $input[$id]); //returns NULL
}
Sans chance.
[edit]
Peut-être que cela a quelque chose à voir avec la façon dont je sauvegarde mes paramètres (fonction de retour de validation ci-dessous)?
$options = get_option('XX_theme_settings');
$valid = array_merge($options,$valid_input);
return $valid;
Merci!
Toujours développer avec WP_DEBUG
défini sur TRUE
. Vous avez une faute de frappe:
array_Push($valid_input[$id], $input[$id];
()
manquant après le array_Push
)
Vous ne pouvez pas pousser vers des tableaux qui ne sont pas ... des tableaux.
// So, check this before pushing:
$valid_input[$id] = ! is_array( $valid_input[$id] ) ? (array) $valid_input[$id] : $valid_input[$id];