Pourquoi créer un plugin back-office ?
Lorsque vous construisez votre plugin maison, vous pouvez avoir besoin de créer une page de réglages dans votre backoffice. Pour ce faire, WordPress met à votre disposition de nombreuses fonctions très utiles qui font une grande partie du travail à votre place. Pourquoi s’en priver pour créer un plugin back-office ?
Les fonctions de WordPress pour le backoffice
Elles ne sont pas toutes là, mais voici déjà une liste de celles que j’utilise fréquemment quand je crée un plugin qui dispose d’une partie administration. Pour voir ces fonctions dans un cas concret de plugin, vous pouvez voir ma page pour le plugin maison de restriction de page aux utilisateurs connectés.
Toutes ces fonctions sont expliquées, avec d’autres dans le site des développeurs WordPress.
add_menu_page()
Rôle : Ajouter un lien dans le menu d’administration principal de WordPress.
Fonctionnement : Cette fonction crée une nouvelle page dans le menu principal de l’administration WordPress. Elle est utilisée lorsque tu veux ajouter une page personnalisée à ton plugin, directement accessible depuis le tableau de bord.
Exemple :
add_menu_page(
'Titre de la page', // Le titre de la page
'Titre du menu', // Le titre qui apparaîtra dans le menu
'manage_options', // La capacité requise pour accéder à cette page
'slug_de_ma_page', // Le slug de la page
'ma_fonction_affiche_page', // La fonction qui affiche le contenu de la page
'dashicons-admin-generic', // Icône affichée dans le menu
20 // Position dans le menu
);
'mon_groupe_de_reglages'
: C’est le groupe auquel appartient le réglage.'mon_option_page_de_redirection'
: C’est l’option qui sera stockée dans la base de données et que WordPress doit gérer.
add_submenu_page()
Rôle : Ajouter une sous-page sous une page de menu existante dans l’administration.
Fonctionnement : Cette fonction permet d’ajouter une page à un menu déjà existant (comme “Réglages”, “Outils”, ou un menu personnalisé ajouté avec add_menu_page()
).
Exemple :
add_submenu_page(
'slug_de_ma_page_principale', // Le slug de la page parent
'Titre de la sous-page', // Le titre de la sous-page
'Titre du sous-menu', // Le texte qui apparaîtra dans le sous-menu
'manage_options', // La capacité requise pour accéder à cette sous-page
'slug_de_ma_sous_page', // Le slug de la sous-page
'ma_fonction_affiche_sous_page' // La fonction qui affiche le contenu de la sous-page
);
'mon_groupe_de_reglages'
: C’est le groupe auquel appartient le réglage.'mon_option_page_de_redirection'
: C’est l’option qui sera stockée dans la base de données et que WordPress doit gérer.
register_setting()
Rôle : Enregistrer un réglage dans WordPress pour qu’il puisse être sauvegardé et géré via l’interface d’administration.
Fonctionnement : Cette fonction associe un groupe de réglages à une option particulière. Elle permet à WordPress de savoir quelle option traiter et comment la valider.
Exemple :
register_setting('mon_groupe_de_reglages', 'mon_option_page_de_redirection');
'mon_groupe_de_reglages'
: C’est le groupe auquel appartient le réglage.'mon_option_page_de_redirection'
: C’est l’option qui sera stockée dans la base de données et que WordPress doit gérer.
add_settings_section()
Rôle : Ajouter une section de réglages pour organiser les champs sur la page d’administration.
Fonctionnement : Cette fonction permet de créer une section sur la page de réglages. Une section est un groupe logique qui contient plusieurs champs associés.
Exemple :
add_settings_section(
'ma_section_de_redirection', // ID de la section
'Options de redirection', // Titre de la section
null, // Pas de description supplémentaire
'ma_page_de_reglages' // La page où afficher la section
);
'ma_section_de_redirection'
: Identifiant unique de la section.'Options de redirection'
: Titre affiché pour cette section sur la page de réglages.'ma_page_de_reglages'
: La page sur laquelle cette section apparaîtra.
add_settings_field()
Rôle : Ajouter un champ spécifique à une section de réglages.
Fonctionnement : Cette fonction ajoute un champ dans une section. Ce champ est lié à une option spécifique enregistrée avec register_setting()
. Ce champ permet à l’utilisateur de configurer une valeur via l’interface d’administration.
Exemple :
add_settings_field(
'mon_champ_page_de_redirection', // ID du champ
'Page de redirection', // Label du champ
'ma_fonction_de_rappel_pour_le_champ', // Fonction qui affichera le HTML du champ
'ma_page_de_reglages', // La page de réglages où ce champ apparaîtra
'ma_section_de_redirection' // La section dans laquelle ce champ apparaîtra
);
'mon_champ_page_de_redirection'
: ID du champ, utilisé pour identifier le champ.'Page de redirection'
: Label qui sera affiché à côté du champ.'ma_fonction_de_rappel_pour_le_champ'
: Fonction de rappel qui génère le HTML pour ce champ.'ma_page_de_reglages'
: La page où le champ sera affiché.'ma_section_de_redirection'
: La section dans laquelle ce champ sera placé.
ma_fonction_de_rappel_pour_le_champ()
Rôle : Fonction de rappel qui génère le HTML pour afficher le champ dans l’interface d’administration.
Fonctionnement : Cette fonction est utilisée pour afficher le champ de réglages que l’administrateur pourra modifier. Elle récupère la valeur actuelle de l’option à partir de la base de données et affiche un champ de formulaire correspondant.
function ma_fonction_de_rappel_pour_le_champ() {
$valeur_selectionnee = get_option('mon_option_page_de_redirection'); // Récupérer la valeur actuelle du réglage
wp_dropdown_pages(array(
'name' => 'mon_option_page_de_redirection', // Nom du champ
'selected' => $valeur_selectionnee, // Page sélectionnée par défaut
'show_option_none' => 'Sélectionnez une page', // Option par défaut au début de la liste
));
}
get_option('mon_option_page_de_redirection')
: Récupère la valeur actuelle de l’option stockée dans la base de données.wp_dropdown_pages()
: Génère un champ de sélection déroulante avec toutes les pages disponibles sur le site WordPress.
wp_dropdown_pages()
Rôle : Générer une liste déroulante de toutes les pages publiées sur le site.
Fonctionnement : Cette fonction permet d’afficher une liste déroulante des pages du site pour que l’utilisateur puisse choisir une page spécifique, par exemple pour la redirection d’utilisateurs non connectés.
Exemple :
wp_dropdown_pages(array(
'name' => 'mon_option_page_de_redirection', // Le nom du champ
'selected' => get_option('mon_option_page_de_redirection'), // La page actuellement sélectionnée
'show_option_none' => 'Sélectionnez une page', // Option par défaut si aucune page n'est encore sélectionnée
));
'name'
: Le nom de l’option, qui sera soumis dans le formulaire.'selected'
: La page actuellement sélectionnée, récupérée avecget_option()
.'show_option_none'
: Texte affiché si aucune page n’est sélectionnée.
settings_fields()
Rôle : Ajouter des champs cachés nécessaires au bon traitement du formulaire de réglages.
Fonctionnement : Cette fonction génère des champs cachés (comme un nonce de sécurité) qui sont requis pour que WordPress puisse valider et traiter les réglages soumis par l’utilisateur.
Exemple :
'mon_groupe_de_reglages'
: Le groupe de réglages pour lequel ces champs cachés sont générés. Il doit correspondre à celui utilisé dans register_setting()
.
do_settings_sections()
Rôle : Afficher les sections et les champs de réglages associés dans la page.
Fonctionnement : Cette fonction parcourt toutes les sections et les champs ajoutés avec add_settings_section()
et add_settings_field()
pour les afficher dans la page de réglages.
Exemple :
'ma_page_de_reglages'
: L’identifiant de la page de réglages où toutes les sections et champs doivent être affichés.
settings_errors()
Rôle : Afficher les messages d’erreur ou de succès lors de la soumission du formulaire.
Fonctionnement : Cette fonction affiche des messages pour indiquer à l’utilisateur si la soumission du formulaire a réussi ou échoué. Elle est utilisée pour informer l’administrateur des résultats de l’action.
Exemple :
settings_errors()
doit être placé dans le formulaire de réglages, généralement en haut, pour afficher les messages pertinents.
submit_button()
Rôle : Générer un bouton de soumission pour un formulaire.
Fonctionnement : Cette fonction crée automatiquement un bouton de soumission pour sauvegarder les réglages de l’utilisateur. Elle applique le style WordPress par défaut pour garantir une cohérence visuelle.
Exemple :
'Enregistrer les modifications'
: Texte du bouton. Si aucun argument n’est passé, le texte par défaut est “Save Changes”.
Conclusion : créer un plugin back-office
Vous connaissez maintenant un cartains nombres de fonctions natives de WordPress pour créer un plugin back-office et générer une page de réglages de paramètres pour votre plugin maison.
