Utilisation de l'API de paramètres WordPress pour créer une page d'administration personnalisée –
   
Dans ce guide, nous allons présenter l'API Paramètres WordPress et créer une page d'administration WordPress sur laquelle nous montrerons l'utilisation de cette API.
Pour les besoins de ce tutoriel, nous allons envelopper cette fonctionnalité dans un plugin. , mais cela peut également faire partie d’un thème WordPress.
Comme le dit le codex WordPress, l’API de paramètres a été ajoutée à WordPress 2.7 pour simplifier l’ajout de différents champs et sections de paramètres dans les pages d’administration.
Création du plug-in [19659005] Pour commencer, nous allons créer et activer un plugin pour encapsuler notre page d'options. Nous allons utiliser WP CLI pour simplifier la création, même si cela nous laisse beaucoup plus de fichiers que ce dont ce guide a besoin.
 Comme nous pouvons le voir, nous utilisons  le plugin wp scaffold  pour créer le plug-in. Une fois qu'il est créé, nous l'activons – éventuellement avec WP CLI, avec le plug-in  wp active le nom du plug-in .
 Une fois activé, nous ouvrons le fichier du plug-in principal – dans ce cas  sitepoint-settings- api.php .
Création de la page d’administration
 Il n’est pas nécessaire d’utiliser WP CLI pour ce plugin. Nous aurions pu simplement créer un répertoire avec le nom du plugin et le fichier PHP qu'il contient avec le même nom. Quoi qu'il en soit, la création du plug-in nous a laissé un  sitepoint-settings-api.php  qui ressemble à ceci:
 <? Php
/ **
 * Nom du plugin: Sitepoint Settings Api
 * Plugin URI: PLUGIN SITE ICI
 * Description: DESCRIPTION DU PLUGIN ICI
 * Auteur: VOTRE NOM ICI
 * Auteur URI: VOTRE SITE ICI
 * Domaine de texte: sitepoint-settings-api
 * Chemin du domaine: / langues
 * Version: 0.1.0
 *
 * @package Sitepoint_Settings_Api
 * /
~
Nous pouvons simplement ajouter du code après la fin du commentaire.
 Pour ajouter notre page d’options, nous allons utiliser  add_options_page ()  (plus de détails à ce sujet  ici ). Cette fonction accepte les arguments comme suit:
 add_options_page ($ page_title, $ menu_title, $ capable,
    $ menu_slug, $ function);
 Tous les arguments sont explicites.  $ menu_slug  doit être une chaîne unique que WordPress utilisera en interne, mais sera également reflétée dans l'URL.  $ function  est une chaîne portant le nom de la fonction qui fournira une sortie HTML pour notre page d’administration.
Nous allons donc ajouter le code suivant à notre fichier de plugin:
 add_action (' admin_menu ',' sitepoint_settings_page ');
function sitepoint_settings_page () {
    add_options_page ('Page de l'API de paramètres', 'Page de l'API de paramètres', 'manage_options', 'settings-api-page', 'settings_api_page');
}
Après avoir enregistré le fichier (en supposant que nous ayons activé notre plugin), nous ouvrirons notre tableau de bord d'administration. Nous y trouverons notre page Paramètres API sous Paramètres dans le menu de gauche
 Nous pouvons contrôler, dans une certaine mesure, l'ordre ou la position de l'élément de sous-menu en ajoutant un argument de priorité à notre fonction  add_action () :
 add_action ('admin_menu' , 'sitepoint_settings_page', 1);
 Si nous voulons que notre élément de menu soit dans le menu racine – plutôt que dans le sous-menu  Settings  – nous utiliserons  add_menu_page () qui  est similaire à arguments .
 Désormais, si nous ouvrons la page dans notre navigateur, nous ne verrons qu'une page vide, car nous n’avons toujours pas créé la fonction  settings_api_page ()  que nous avons spécifiée. :
 
L'API Paramètres
L'API Paramètres WordPress est un mécanisme complexe qui tente de fournir aux développeurs un moyen simple de créer des pages de paramètres.
Avant de partir Dans un exemple complet de la page des paramètres affichant et enregistrant un paramètre dans la base de données WordPress, nous expliquerons quelques fonctions cruciales fournies par WordPress dans le cadre de son API Settings .
   register_setting ()  est une fonction que nous utilisons pour enregistrer un paramètre égal à a rangée dans la table  wp_options . Avant de pouvoir créer un champ réel (ou des champs, car la définition peut être un tableau de valeurs), nous devons l'enregistrer. De cette façon, nous allons utiliser le mécanisme WordPress  CRUD  pour les paramètres. Les arguments de la fonction sont les suivants:
 register_setting (string $ groupe_options, chaîne $ nom_option, array $ args = array ())
 Les deux premiers arguments sont obligatoires, le premier nous permettant de lui affecter des champs et  $ nom_option comme nous allons le voir, est le nom réel de l'option dans la base de données WordPress.
add_settings_section () définit / ajoute une section à une page d'administration. Ses arguments sont les suivants:
 add_settings_section (chaîne $ id, chaîne $ titre, callable $ callback, chaîne $ page)
  $ callback  est une fonction qui génère un en-tête HTL de la section (il peut être vide), et  $ page  est le slug de la page d'administration que nous afficherons.
add_settings_field () définit un champ de paramètres dans une section de paramètres de la page d’options de l’administrateur. Ses arguments sont les suivants:
 add_settings_field (chaîne $ id, chaîne $ titre, callable $ callback, chaîne $ page, chaîne $ section = 'défaut', tableau $ args = tableau ()
 De ceux-ci,  $ id  $ title  $ callback  et  $ page  sont obligatoires. La fonction  $ callback  doit générer le code HTML du champ de saisie.
 L'API de paramètres fournit les arguments  $ page  pour  add_settings_section  et  add_settings . ] pour ajouter des sections et des champs aux pages de paramètres existantes. Nous utiliserons  stpPlugin  à la fois pour notre groupe d'options – dans  register_setting ()  – et pour attacher la section de paramètres et les champs de paramètres à une page 'stpPlugin' dans la  add_settings_section ( )  et  add_settings_field ()  fonctions. Nous citerons ensuite «le citer» dans les deux fonctions suivantes de notre exemple, pour générer le code HTML pertinent.
   settings_fields ()  génère  les champs «nonce, action et option_page pour une page de paramètres ".  Il prend l'argument  $ option_group utilisé dans  register_setting () .
do_settings_sections () affiche toutes les sections, avec leurs champs respectifs, enregistré pour une page $ spécifique.
  $ page  est le seul argument que nous avons ici.
 Après avoir expliqué ces fonctions, nous passons maintenant à un code réel. Le code PHP précédent que nous avons ajouté au fichier  sitepoint-settings-api.php  que nous remplaçons par ce qui suit:
 add_action ('admin_menu', 'stp_api_add_admin_menu');
add_action ('admin_init', 'stp_api_settings_init');
fonction stp_api_add_admin_menu () {
    add_options_page ('Page de paramètres API', 'Page de paramètres API', 'manage_options', 'paramètres-api-page', 'stp_api_options_page');
}
fonction stp_api_settings_init () {
    register_setting ('stpPlugin', 'stp_api_settings');
    add_settings_section (
        'stp_api_stpPlugin_section',
        __ ('Our Section Title', 'wordpress'),
        'stp_api_settings_section_callback',
        'stpPlugin'
    )
    add_settings_field (
        'stp_api_text_field_0',
        __ ('Our Field 0 Title', 'wordpress'),
        'stp_api_text_field_0_render',
        'stpPlugin',
        'stp_api_stpPlugin_section'
    )
    add_settings_field (
        'stp_api_select_field_1',
        __ ('Our Field 1 Title', 'wordpress'),
        'stp_api_select_field_1_render',
        'stpPlugin',
        'stp_api_stpPlugin_section'
    )
}
fonction stp_api_text_field_0_render () {
    $ options = get_option ('stp_api_settings');
    ?>
    <type d'entrée = 'text' name = 'stp_api_settings [stp_api_text_field_0]' value = ''>
    
    
    
     <? php
}
 Nous associons ici la fonction  stp_api_settings_init ()  à la fonction  admin_init . Nous y définissons et enregistrons nos paramètres, sections et champs.
  stp_api_text_field_0_render ()  et  stp_api_select_field_1_render ()  définit la sortie HTML de nos deux champs, les champs text et select, appartenant à le même groupe  stpPlugin  et la table  stp_api_settings  dans la  wp_options  de la base de données.
 Enfin, nous définissons  stp_i. qui génère le code HTML pour notre page d'options administrateur. Nous y incorporons les sections de paramètres et les champs. Nous avons fait référence à cette fonction en haut de notre fichier, dans la fonction  stp_api_add_admin_menu () où nous avons enregistré la page admin (options).
Quand nous allons maintenant, à nouveau, dans nos paramètres page, nous verrons qu'elle n'est plus vide:
 
Si nous essayons de modifier et d'enregistrer ces champs, nous verrons lors de l'actualisation que travaux! WordPress résume les transactions de base de données pour nous, les nonces, etc.
Nous pourrions ajouter des fonctionnalités de validation, un style supplémentaire pour cette page, etc.
 Si nous passons à WP CLI et essayons d’exécuter  wp option get stp_api_settings  – après avoir modifié certaines valeurs pour ces deux champs – nous obtiendrons ceci:
 
 nous montre que ces deux champs ont été sauvegardés dans notre base de données  wp_options  en tant que champs d'un tableau, comme  stp_api_settings .
Si nous passons maintenant au shell WP CLI, nous pouvons essayer le code que nous allons utiliser pour rechercher ces options dans nos fichiers de plug-in ou de thèmes:
 
Conclusion
WordPress s'est imposé dans l'industrie du Web en raison de sa facilité. d'utilisation et sa courbe d'apprentissage douce pour les développeurs. L’API Paramètres est un exemple de cette convivialité.
Dans ce guide, nous avons présenté l’API Paramètres WordPress. On peut en dire beaucoup plus sur ce sujet, mais l'intro que nous avons présentée ici devrait permettre de démystifier le sujet afin de permettre aux pirates informatiques inventifs de construire leurs propres solutions à partir de ceci.
Source link
