Shortcode
L'attribut Shortcode permet de créer des shortcodes personnalisés utilisables dans le contenu WordPress ou dans l'éditeur Gutenberg, en suivant une approche orientée objet.
Utilisation de base
app/Controllers/MyController.php
use Elementum\Attributes\Shortcode; class MyController extends Controller { #[Shortcode('hello', options: [ 'name' => 'World', 'age' => 20 ])] public function helloShortcode($atts) { $atts['age'] = $atts['age'] + 1; $currentYear = date('Y'); return $this->render('hello.html.twig', [ 'atts' => $atts, 'currentYear' => $currentYear ]); } }
Paramètres
Paramètre obligatoire
name
- Type :
string - Description : Nom du shortcode utilisé dans le contenu
- Exemple :
'hello','afficher_carte','bouton' - Remarque : Doit être unique et ne doit pas contenir d'espaces ou de caractères spéciaux
Paramètres optionnels
options
- Type :
array - Défaut :
[] - Description : Définit les attributs par défaut du shortcode
- Exemple :
['couleur' => 'bleu', 'taille' => 'moyen'] - Remarque : Ces valeurs seront fusionnées avec les attributs fournis dans le shortcode
Exemples avancés
Shortcode avec attributs personnalisés
#[Shortcode('afficher_carte', options: [ 'titre' => 'Titre par défaut', 'image' => '', 'lien' => '#', 'style' => 'standard' ])] public function cardShortcode($atts) { // Le traitement des attributs est automatique // $atts contient les valeurs fusionnées (attributs par défaut + attributs fournis) return $this->render('components/card.html.twig', [ 'card' => $atts ]); }
Utilisation dans le contenu
[afficher_carte titre="Notre offre spéciale" image="/wp-content/uploads/offre.jpg" style="promo" ]
Shortcode auto-fermant
#[Shortcode('annee_courante')] public function currentYearShortcode() { return date('Y'); }
Bonnes pratiques
- Noms uniques : Choisissez des noms de shortcodes uniques pour éviter les conflits
- Documentation : Documentez les attributs disponibles et leur utilisation
- Performance : Évitez les requêtes lourdes dans les shortcodes
- Compatibilité : Testez vos shortcodes avec différents éditeurs (Gutenberg, classique, etc.)
Remarques
- Les shortcodes sont automatiquement enregistrés au chargement du contrôleur
- Les noms des attributs sont automatiquement convertis en minuscules par WordPress
- Utilisez
shortcode_atts()dans votre méthode pour fusionner les attributs si nécessaire