Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/effi10/effi-page-creator/archive/refs/heads/main.zipUn plugin WordPress permettant de créer des pages en masse avec une hiérarchie automatique en utilisant une syntaxe markdown simplifiée.
✨ Fonctionnalités
- 🚀 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
📋 Prérequis
- WordPress 5.0 ou supérieur
- PHP 7.4 ou supérieur
- Permissions d'administration WordPress
🚀 Installation
Installation manuelle
- 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
Structure des fichiers
effi-page-creator/
├── effi-page-creator.php # Fichier principal du plugin
├── assets/
│ ├── admin.js # Scripts JavaScript
│ └── admin.css # Styles CSS
└── README.md # Documentation
📖 Utilisation
Accès à l'interface
- Connectez-vous à votre administration WordPress
- Allez dans Outils > Page Creator
- Vous arrivez sur l'interface de création de pages
Syntaxe markdown
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
Niveaux supportés
#- 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)
Formats acceptés
Avec slug personnalisé :
# Titre de la page [mon-slug-personnalise]
Sans slug (génération automatique) :
# Titre de la page
Exemple complet
# 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 Charpente
Ré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:
Options disponibles
- Créer des brouillons : Cochez cette option pour créer les pages en statut "brouillon" au lieu de "publié"
🖥️ Interface
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
⚙️ Fonctionnalités techniques
Sécurité
- 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
Génération automatique des slugs
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
Performance
- 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
🔧 Développement
Structure du code
- 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
Personnalisation
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
🐛 Résolution de problèmes
Erreurs communes
"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
Débogage
Pour activer les logs de débogage WordPress :
// Dans wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
📝 Changelog
v1.0.1
- Support des slugs optionnels
v1.0.0
- Version initiale
- Création de pages hiérarchiques
- Interface d'administration
- Sécurité et validation
- Interface responsive
🤝 Contribution
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
📄 Licence
Ce projet est sous licence GPL v2 ou supérieure. Voir le fichier LICENSE pour plus de détails.
👨💻 Auteur
Développé avec ❤️ pour la communauté WordPress.
🆘 Support
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 !