// Extension WordPressv1.3.2GPL-2.0-or-later

Anchor Dynamic URL

Ajoutez des ancres dynamiques aux éléments de menu WordPress et aux éléments Elementor. L'URL générée se met à jour automatiquement si le slug de la page change — fini les liens cassés.

IntégrationsMenus + Elementor
DépendancesAucune
LicenceGPL-2.0
WordPress5.0+
PHP7.4+
// Fonctionnalités

Ce que fait l'extension

Menus WordPress natifs

Champ "Anchor" intégré dans l'éditeur de menus (Apparence > Menus). Saisissez l'identifiant sans le # — l'URL est construite automatiquement.

URL auto-maintenue

Si le slug de la page change (/contact → /nous-contacter), tous les liens d'ancrage associés sont mis à jour sans intervention manuelle.

Intégration Elementor

Étend les contrôles URL natifs d'Elementor. Champ "Target Anchor" disponible pour boutons, titres, images et tous les éléments avec un contrôle URL.

Mises à jour automatiques

Vérifie les nouvelles versions directement depuis le dépôt GitHub Hylbee/anchor-dynamic-url. Notification d'upgrade intégrée au tableau de bord WordPress.

Sécurité renforcée

Vérification du nonce, sanitisation complète (wp_unslash, sanitize_text_field), échappement HTML, filtrage des ancres et blocage des path traversals.

Filtrage des ancres

Seuls les caractères [a-zA-Z0-9-_] sont autorisés. Les espaces sont convertis en tirets et les caractères spéciaux supprimés automatiquement.

Prêt pour l'internationalisation

Fichier .pot fourni, traduction française (fr_FR) incluse et complète. Compatible langues RTL et système de traduction WordPress.org.

Architecture DDD propre

Domain-Driven Design avec séparation des responsabilités : Manager, Service, Repository, Sanitizer, Entity. Aucune dépendance requise.

// Mise en route

Comment ça marche

01

Installation

Installez et activez l'extension depuis votre admin WordPress. Aucune configuration initiale nécessaire.

02

Saisie de l'ancre

Dans Apparence > Menus, saisissez l'identifiant de l'ancre dans le champ "Anchor" sans le #.

03

URL générée

L'URL finale est construite automatiquement : https://monsite.com/page#ancre.

04

Mise à jour auto

Si le slug de la page change, l'URL de tous les liens d'ancrage associés se met à jour sans intervention.

// Architecture

Architecture DDD

Séparation stricte des responsabilités selon les principes du Domain-Driven Design. Chaque classe a un rôle unique et isolé.

AnchorDynamicUrlManagerContrôleurContrôleur principal, pattern Singleton
AnchorServiceServiceLogique métier (ajout, sauvegarde, mise à jour des ancres)
AnchorRepositoryRepositoryAccès aux données WordPress via post meta
AnchorSanitizerUtilitaireSanitisation et filtrage des ancres
AnchorItemEntitéEntité domaine représentant un item de menu avec ancre
AnchorDynamicUrlUpdaterUpdaterSystème de mise à jour via GitHub API
elementor-integration.phpIntégrationIntégration Elementor (chargement conditionnel)
// API publique

Formats d'ancres supportés

Les espaces sont convertis en tirets et les caractères spéciaux supprimés. Les quatre conventions de nommage sont prises en charge nativement.

kebab-case
contact-section
snake_case
contact_section
camelCase
contactSection
PascalCase
ContactSection
// Sécurité

Conçu pour être sécurisé

Vérification du nonce à chaque sauvegarde de menu

Sanitisation complète via wp_unslash + sanitize_text_field

Échappement de toutes les sorties HTML (protection XSS)

Filtrage strict des ancres : seuls [a-zA-Z0-9-_] sont autorisés

Protection contre l'injection de paramètres de requête et les path traversals

Accès direct aux fichiers PHP bloqué

// Limitations

Ce que l'extension ne fait pas

Compatible uniquement avec les menus WordPress classiques (pas le bloc Navigation de Gutenberg)

L'intégration Elementor nécessite qu'Elementor soit installé et activé

Les caractères spéciaux hors [a-zA-Z0-9-_] sont supprimés automatiquement de l'ancre

// Développeurs

Pour les développeurs

AnchorSanitizer expose la logique de filtrage des ancres. Caractères autorisés : [a-zA-Z0-9-_]. Les espaces sont convertis en tirets avant la sanitisation.

anchor-sanitizer.php
// Sanitise une ancre : espaces → tirets, strip des caractères invalides
$anchor = AnchorSanitizer::sanitize($raw_anchor);

// Génère l'URL complète avec ancre pour un item de menu
$url = AnchorService::build_anchor_url($page_id, $anchor);

// Résultat : https://monsite.com/page#contact-section
// Formats valides : kebab-case, snake_case, camelCase, PascalCase
// Configuration

Prérequis techniques

WordPress min.5.0 (testé jusqu'à 6.8)
PHP7.4 ou supérieur
ElementorOptionnel — requis uniquement pour l'intégration Elementor
DépendancesAucune — extension autonome
LicenceGPL v2 ou supérieure (open-source)
// Open-source & gratuit

Fini les liens d'ancrage cassés

Téléchargez Anchor Dynamic URL directement depuis GitHub et commencez à gérer vos ancres de menu en quelques minutes.