URLRewriter
La façade URLRewriter permet de déclarer des rewrite rules WordPress avec une API fluide, puis de récupérer facilement les variables capturées dans l'URL.
Cas d'usage
Utilisez cette façade pour exposer des URLs lisibles (SEO-friendly) tout en conservant une logique de routage WordPress (index.php?...).
use Elementum\Facades\URLRewriter; URLRewriter::for('hebergements') ->type('pagename') ->segment('item_slug') ->segment('item_id', URLRewriter::INT) ->register();
Ensuite, vous pouvez récupérer les valeurs :
$slug = URLRewriter::get('item_slug'); $id = URLRewriter::get('item_id');
Méthodes
for(string $base): static
Point d'entrée de la chaîne fluide.
base: segment principal de l'URL (ex:hebergements).
type(string $type): static
Définit le type de query WordPress injecté dans la rule.
Exemples fréquents : pagename, post_type, category_name.
segment(string $name, string $regex = self::ANY): static
Ajoute un segment dynamique capturé dans l'URL.
name: nom de la query varregex: expression de capture (constantes disponibles ci-dessous)
priority(string $priority): static
Définit la priorité de la rewrite rule :
top(par défaut)bottom
register(): void
Enregistre la rewrite rule et les query vars associées.
get(string $name, mixed $default = null): mixed
Récupère la valeur d'une query var (get_query_var).
flush(): void
Exécute flush_rewrite_rules().
Constantes utiles
URLRewriter::ANY→[^/]+URLRewriter::SLUG→[a-zA-Z0-9-]+URLRewriter::INT→[0-9]+URLRewriter::ALPHA→[a-zA-Z]+
Recommandations
- Déclarez vos rules pendant l'initialisation WordPress (par ex. sur
init). - Évitez d'appeler
flush()à chaque requête (coûteux) : déclenchez-le lors de l'activation/mise à jour du plugin ou thème.