Création d'une page d'admin.
Elementum simplifie la création de pages d'administration personnalisées dans WordPress grâce à la commande Dobby.
Création d'une page
Pour créer une nouvelle page d'administration, utilisez la commande :
php dobby make:admin:page MyAdminPage
Paramètres de configuration
Lors de l'exécution, vous serez invité à renseigner :
- Nom du menu : Le texte affiché dans le menu latéral (obligatoire)
- Titre de la page : Le titre affiché dans l'onglet du navigateur (obligatoire)
- Permission : Le rôle utilisateur requis pour accéder à la page (par défaut :
administrator) - Icône : Une icône Dashicons (par défaut :
dashicons-admin-home) - Position : Position dans le menu (par défaut :
2) - Préfixe : Préfixe pour les options (par défaut :
elementum_{nom_fichier_slugifier}_) - Page parente : Pour créer une sous-page (laisser vide pour une page principale)
Seuls le nom du menu et le titre de la page sont obligatoires. Tous les autres paramètres ont des valeurs par défaut adaptées.
Structure générée
La commande crée automatiquement une nouvelle classe dans app/Admin/Pages/MyAdminPage.php avec la structure de base :
<?php namespace App\Admin\Pages; use Elementum\Admin\AdminPage; class MyAdminPage extends AdminPage { public function __construct() { parent::__construct([ 'menu_title' => 'Ma Page', 'page_title' => 'Titre de la page', // Autres paramètres... ]); } public function front() { // Votre logique ici return []; } }
Gestion des sous-pages
Création d'une sous-page
Pour créer une sous-page, spécifiez le slug de la page parente lors de la création. Par exemple, pour une page dans le menu des réglages :
php dobby make:admin:page MySettings --parent=options
Emplacements natifs de WordPress
Vous pouvez intégrer votre page dans les sections natives de WordPress en utilisant ces slugs :
dashboard: Tableau de bordposts: Articlesmedia: Médiaspages: Pagescomments: Commentairestheme: Apparenceplugins: Extensionsusers: Utilisateursmanagements: Réglagesoptions: Optionstools: Outils
Sous-page d'un post type personnalisé
Depuis la 0.7.4, vous pouvez rattacher une page d'administration au menu d'un post type en utilisant le pattern edit.php?post_type=<slug> comme page parente :
$this->setParent('edit.php?post_type=my-cpt');
Elementum vérifie automatiquement que le post type est enregistré avant d'ajouter la sous-page. Si le CPT n'existe pas, la page est silencieusement ignorée.
class MyCptSettingsPage extends AdminPage { public function __construct() { parent::__construct([ 'menu_title' => 'Réglages', 'page_title' => 'Réglages du CPT', 'parent' => 'edit.php?post_type=my-cpt', 'permission' => 'manage_options', ]); } }
Le résultat apparaîtra dans le menu latéral sous l'entrée de votre post type.
Bonnes pratiques
- Utilisez des noms de classe descriptifs (ex:
MyThemeSettings,CompanyPage) - Utilisez les sous-pages pour une meilleure organisation du menu