Un plugin WordPress permettant de créer des pages en masse avec une hiérarchie automatique en utilisant une syntaxe markdown simplifiée.
- 🚀 Création en masse : Créez plusieurs pages d'un coup
- 🏗️ Hiérarchie automatique : Gestion automatique des relations parent/enfant
- 📝 Syntaxe markdown : Interface simple et intuitive
- 🔧 Slug personnalisé ou automatique : Contrôlez vos URLs ou laissez WordPress les générer
- 📄 Brouillons ou publication : Choisissez le statut de vos pages
- 🎯 Interface intuitive : Intégré dans l'administration WordPress
- 🔒 Sécurisé : Protection CSRF, validation des données, vérification des permissions
- WordPress 5.0 ou supérieur
- PHP 7.4 ou supérieur
- Permissions d'administration WordPress
- Téléchargez le plugin depuis GitHub
- Décompressez l'archive dans le dossier
/wp-content/plugins/ - Activez le plugin via l'interface d'administration WordPress
effi-page-creator/
├── effi-page-creator.php # Fichier principal du plugin
├── assets/
│ ├── admin.js # Scripts JavaScript
│ └── admin.css # Styles CSS
└── README.md # Documentation
- Connectez-vous à votre administration WordPress
- Allez dans Outils > Page Creator
- Vous arrivez sur l'interface de création de pages
Le plugin utilise une syntaxe markdown simplifiée basée sur les niveaux de titre :
# Page racine [slug-personnalise]
## Page enfant [slug-enfant]
### Page petit-enfant
#### Page arrière-petit-enfant#- Niveau 1 (page racine)##- Niveau 2 (enfant de niveau 1)###- Niveau 3 (enfant de niveau 2)####- Niveau 4 (enfant de niveau 3)#####- Niveau 5 (enfant de niveau 4)######- Niveau 6 (enfant de niveau 5)
Avec slug personnalisé :
# Titre de la page [mon-slug-personnalise]Sans slug (génération automatique) :
# Titre de la page# Guide Complet de la Rénovation de Maison [guide-renovation-maison]
## Budget et Prix de la Rénovation
### Coût Rénovation Maison 100m2 [cout-renovation-100m2]
### Coût Rénovation Maison 150m2
## Étapes et Planification d'une Rénovation [etapes-renovation]
### Diagnostic et État des Lieux
### Gros Œuvre et Structure
#### Fondations et Murs Porteurs
#### Toiture et CharpenteRésultat :
- Page racine : "Guide Complet de la Rénovation de Maison" (slug:
guide-renovation-maison)- Enfant : "Budget et Prix de la Rénovation" (slug:
budget-et-prix-de-la-renovation)- Petit-enfant : "Coût Rénovation Maison 100m2" (slug:
cout-renovation-100m2) - Petit-enfant : "Coût Rénovation Maison 150m2" (slug:
cout-renovation-maison-150m2)
- Petit-enfant : "Coût Rénovation Maison 100m2" (slug:
- Enfant : "Étapes et Planification d'une Rénovation" (slug:
etapes-renovation)- Petit-enfant : "Diagnostic et État des Lieux" (slug:
diagnostic-et-etat-des-lieux) - Petit-enfant : "Gros Œuvre et Structure" (slug:
gros-oeuvre-et-structure)- Arrière-petit-enfant : "Fondations et Murs Porteurs" (slug:
fondations-et-murs-porteurs) - Arrière-petit-enfant : "Toiture et Charpente" (slug:
toiture-et-charpente)
- Arrière-petit-enfant : "Fondations et Murs Porteurs" (slug:
- Petit-enfant : "Diagnostic et État des Lieux" (slug:
- Enfant : "Budget et Prix de la Rénovation" (slug:
- Créer des brouillons : Cochez cette option pour créer les pages en statut "brouillon" au lieu de "publié"
L'interface du plugin comprend :
- Zone de texte multiligne : Pour saisir votre contenu markdown
- Case à cocher : "Créer des brouillons"
- Bouton "Générer les pages" : Lance la création
- Aide contextuelle : Rappel de la syntaxe
- Résultats détaillés : Affichage des pages créées avec liens d'édition
- Protection CSRF : Utilisation de nonces WordPress
- Validation des permissions : Vérification des droits utilisateur
- Sanitisation des données : Nettoyage de toutes les entrées
- Prévention d'accès direct : Protection des fichiers PHP
Quand aucun slug n'est spécifié, le plugin utilise sanitize_title() de WordPress pour :
- Supprimer les caractères spéciaux
- Convertir en minuscules
- Remplacer les espaces par des tirets
- Gérer les accents (é → e, ç → c, etc.)
- Supprimer les caractères non-ASCII
Exemples :
- "Guide Complet & Détaillé" →
guide-complet-detaille - "Coût 100m² à Paris" →
cout-100m2-a-paris - "FAQ - Questions/Réponses" →
faq-questions-reponses
- Traitement AJAX : Interface non-bloquante
- Validation côté client : Vérifications préliminaires en JavaScript
- Gestion d'erreurs : Retours détaillés en cas de problème
- Classe principale :
EffiPageCreator - Hooks WordPress :
admin_menu,admin_enqueue_scripts,wp_ajax_* - Méthodes principales :
add_admin_menu(): Ajoute le menu adminadmin_page(): Affiche l'interfaceajax_create_pages(): Traite les requêtes AJAXcreate_pages_from_content(): Logique de création des pagesparse_line(): Analyse la syntaxe markdown
Le plugin peut être étendu en modifiant :
- Niveaux maximum : Changez
#{1,6}dans les regex pour supporter plus de niveaux - Statuts de pages : Ajoutez d'autres statuts que "draft" et "publish"
- Types de contenu : Modifiez pour créer des custom post types
"Format invalide"
- Vérifiez que chaque ligne commence par
#,##, etc. - Assurez-vous qu'il y a un espace après les
# - Les crochets
[]doivent être bien fermés si utilisés
"Erreur de création de page"
- Vérifiez vos permissions WordPress
- Contrôlez que le slug n'existe pas déjà
- Vérifiez les limites de votre hébergement
"Erreur de sécurité"
- Actualisez la page et réessayez
- Videz le cache si vous en utilisez un
Pour activer les logs de débogage WordPress :
// Dans wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);- Support des slugs optionnels
- Version initiale
- Création de pages hiérarchiques
- Interface d'administration
- Sécurité et validation
- Interface responsive
Les contributions sont les bienvenues ! Pour contribuer :
- Forkez le projet
- Créez votre branche feature (
git checkout -b feature/AmazingFeature) - Committez vos changements (
git commit -m 'Add some AmazingFeature') - Poussez vers la branche (
git push origin feature/AmazingFeature) - Ouvrez une Pull Request
Ce projet est sous licence GPL v2 ou supérieure. Voir le fichier LICENSE pour plus de détails.
Développé avec ❤️ pour la communauté WordPress.
Si vous rencontrez des problèmes ou avez des questions :
- Vérifiez la section Résolution de problèmes
- Consultez les Issues GitHub
- Créez une nouvelle issue si nécessaire
⭐ Si ce plugin vous est utile, n'hésitez pas à lui donner une étoile sur GitHub !