Aller au contenu principal
Version: 0.7.3

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 var
  • regex : 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.