web-dev-qa-db-fra.com

utiliser add_settings_field correctement?

J'utilise add_settings_field pour ajouter davantage de détails à un menu de paramètres, mais je ne sais pas comment je vais enregistrer les paramètres ni les rappeler dans mon thème.

Voici le code jusqu'à présent

add_action('admin_init','vimeo_setup');

function vimeo_setup(){
add_settings_field('vimeo_id','Vimeo ID','display_vimeo','general');
}

function display_vimeo(){

 echo '<input  type="text" name="vimeo_id" id="vimeo_id" value="" size="30" style="width:85%" />';
 echo '<p><small> Enter your Vimeo ID here.</small></p>';
}
3
Mild Fuzz

Documentation pour add_settings_field () dit ce qui suit:

Vous DEVEZ enregistrer toutes les options utilisées par cette fonction avec register_setting () , sinon elles ne seront pas sauvegardées. et mis à jour automatiquement.

4
Rarst

Il est à noter que pour ajouter un champ de paramètres, vous devez l'enregistrer dans une section enregistrée.

Donc, cela doit être utilisé à côté de votre propre section enregistrée, ou bien être un champ à ajouter à une section existante (comme celles des pages d'options).

Voir. http://codex.wordpress.org/Function_Reference/add_settings_section

J'irais même jusqu'à dire que ce ne sont pas vraiment très bonnes lorsqu'il s'agit de construire des pages d'options de plug-in ou similaires (options de thème), tout simplement parce que chaque section et chaque champ enregistrés doivent être munis d'un rappel (imaginez combien de rappels besoin si vous avez 3-4 sections, toutes avec 5-6 champs). Vous pouvez bien sûr effectuer des rappels dynamiques (vous n'avez donc besoin que d'un rappel pour une section et d'un pour les champs) en transmettant des paramètres ... (vous devrez également vous assurer que vous imprimez les notes de ces sections/champs). .

Personnellement, je trouve qu'il est préférable de simplement enregistrer vos options/paramètres, d'imprimer vos propres sections/champs et d'appeler un seul destinataire pour couvrir tous vos paramètres.

// 1: Reference, 2: Option name, 3: Callback function to sanitize the data
register_setting( 'reference_name', 'option_name', 'example_callback' );

Alors, quel que soit l'endroit où vous imprimez vos différents champs d'option, il vous suffit d'imprimer un seul numéro couvrant le lot.

settings_fields( 'reference_name' ); 

Si vous avez enregistré différentes sections et champs, vous devrez également le faire pour chacune des sections enregistrées.

do_settings_sections('your_section');

En réalité, le seul aspect important de la configuration des options personnalisées est de vous assurer de définir votre propre rappel lors de l’enregistrement des paramètres et de la désinfection appropriée de ces données (troisième paramètre de register_setting).

3
t31os