Aller au contenu principal
Version: 26.0.8.7

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écoce
    • 10 : Priorité standard
    • 11+ : 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