Aller au contenu principal
Version: 26.0.8.7

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