Aller au contenu principal
Version: 26.0.8.0

Filter

L'attribut Filter permet d'enregistrer une méthode comme un filtre WordPress, équivalent à l'utilisation de la fonction add_filter().

Utilisation de base

app/Controllers/MyController.php
use Elementum\Attributes\Filter;

class MyController extends Controller
{
    #[Filter('the_title')]
    public function modifyTitle($title, $id = null)
    {
        return $title . " - Post ID : " . $id;
    }
}

Paramètres

Paramètre obligatoire

name Requis

  • Type : string|array
  • Description : Nom du filtre WordPress à appliquer
  • Exemple : 'the_title', 'the_content', 'excerpt_more'
  • Remarque : Peut être un tableau pour s'appliquer à plusieurs filtres

Paramètres optionnels

priority

  • Type : int
  • Défaut : 10
  • Description : Définit l'ordre d'exécution du filtre par rapport aux autres filtres rattachés 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 de filtre accepte de recevoir
  • Important : Doit correspondre au nombre de paramètres de votre méthode

Exemples avancés

Avec plusieurs filtres

#[Filter(['the_title', 'the_content'])]
public function modifyTitles($content)
{
    // Code appliqué à la fois aux titres et au contenu
    return $content;
}

Avec priorité personnalisée

#[Filter('the_content', priority: 1)]
public function earlyContentFilter($content)
{
    // S'exécutera avant les autres filtres (priorité 1)
    return $content;
}

Avec plusieurs arguments

#[Filter('the_content', accepted_args: 2)]
public function contentWithId($content, $id = null)
{
    // $content: Le contenu à filtrer
    // $id: L'ID du post (si disponible)
    return $content . " (ID: " . $id . ")";
}

Bonnes pratiques

  • Documentation : Indiquez clairement ce que fait le filtre et quels arguments il attend