Ce que je voudrais faire, c'est ajouter quelques champs personnalisés aux paramètres généraux. Ceci est le code que j'utilise. Cela fonctionne bien, mais je n'arrive pas à comprendre comment ajouter plus de champs.
Je voudrais créer deux champs pour l'instant, un pour le numéro de téléphone et le second pour l'adresse:
function register_fields()
{
register_setting('general', 'my_first_field', 'esc_attr');
add_settings_field('my_first_field', '<label for="my_first_field">'.__('My Field' , 'my_first_field' ).'</label>' , 'print_custom_field', 'general');
}
function print_custom_field()
{
$value = get_option( 'my_first_field', '' );
echo '<input type="text" id="my_first_field" name="my_first_field" value="' . $value . '" />';
}
add_filter('admin_init', 'register_fields');
La seule façon dont j'ai réussi à le faire fonctionner pour plusieurs champs était de tout dupliquer.
Alors, cela ressemblerait à ceci:
function register_fields()
{
register_setting('general', 'my_first_field', 'esc_attr');
add_settings_field('my_first_field', '<label for="my_first_field">'.__('My Field' , 'my_first_field' ).'</label>' , 'print_first_field', 'general');
register_setting('general', 'my_second_field', 'esc_attr');
add_settings_field('my_second_field', '<label for="my_second_field">'.__('My Field' , 'my_second_field' ).'</label>' , 'print_second_field', 'general');
}
function print_first_field()
{
$value = get_option( 'my_first_field', '' );
echo '<input type="text" id="my_first_field" name="my_first_field" value="' . $value . '" />';
}
function print_second_field()
{
$value = get_option( 'my_second_field', '' );
echo '<input type="text" id="my_second_field" name="my_second_field" value="' . $value . '" />';
}
add_filter('admin_init', 'register_fields');
Mais ce n'est probablement pas la meilleure façon de le faire, j'ai essayé de créer un settings_section
mais ça n'a tout simplement pas fonctionné ou n'a pas enregistré etc. C'est juste très déroutant.