Fermer

novembre 5, 2018

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. :

 Notre page d'administration est actuellement vide

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 = ''>
    
    


    

Page d'administration de l'API Paramètres de Sitepoint

<? 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:

 Le contenu de notre page de paramètres est maintenant

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:

 L'effet de l'exécution de l'option wp a pour résultat stp_api_settings dans WP CLI

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:

 Obtention d'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