Action
L'attribut Action permet d'enregistrer une méthode comme un hook d'action WordPress, équivalent à l'utilisation de la fonction add_action().
Utilisation de base
app/Controllers/MyController.php
use Elementum\Attributes\Action; class MyController extends Controller { #[Action('init')] public function initialize() { // Code exécuté lors de l'initialisation de WordPress } }
Paramètres
Paramètre obligatoire
name Requis
- Type :
string|array - Description : Nom du hook WordPress auquel se rattacher
- Exemple :
'init','wp_head','save_post' - Remarque : Peut être un tableau pour s'enregistrer sur plusieurs hooks
Paramètres optionnels
priority
- Type :
int - Défaut :
10 - Description : Définit l'ordre d'exécution de la fonction par rapport aux autres fonctions rattachées au même hook
- Valeurs courantes :
1-9: Exécution précoce10: Priorité standard11+: Exécution tardive
accepted_args
- Type :
int - Défaut :
1 - Description : Nombre d'arguments que la fonction accepte de recevoir
- Important : Doit correspondre au nombre de paramètres de votre méthode
Exemples avancés
Avec plusieurs hooks
#[Action(['init', 'admin_init'])] public function onInit() { // Code exécuté à la fois sur init et admin_init }
Avec priorité personnalisée
#[Action('wp_enqueue_scripts', priority: 1)] public function enqueueEarlyScripts() { // S'exécutera avant les autres scripts (priorité 1) }
Avec plusieurs arguments
#[Action('save_post', accepted_args: 3)] public function onPostSave($postId, $post, $update) { // $postId: ID de l'article // $post: Objet WP_Post // $update: Booléen indiquant s'il s'agit d'une mise à jour }
Bonnes pratiques
- Nommage : Utilisez des noms de méthodes descriptifs qui reflètent l'action et le hook
- Documentation : Commentez le but de l'action si ce n'est pas évident