wp_unique_id()
Définition : wp_unique_id() génère un identifiant de chaîne unique au cours d’une requête PHP WordPress, avec un préfixe optionnel. Elle facilite la création d’attributs id non répétés dans un rendu HTML.
Comprendre et utiliser
À quoi sert ce terme ?
Elle aide à relier correctement un label à un champ lorsque plusieurs instances du même composant apparaissent sur une page. Elle évite de coder en dur le même identifiant sur chaque formulaire.
Fonctionnement technique
WordPress maintient un compteur propre au traitement en cours. Le résultat est adapté à l’unicité dans le rendu d’une page, mais n’est ni aléatoire ni conçu comme un jeton de sécurité.
Dans quels contextes l’utiliser ?
L’utiliser pour des identifiants HTML d’éléments répétables : onglets, champs, panneaux ou descriptions aria-describedby.
Cas concret : ATOOLPHA
ATOOLPHA affiche plusieurs formulaires de recherche de ressources dans des widgets différents. Chaque label doit désigner son propre input.
Exemple de code commenté
Extrait PHP destiné à un plugin ou à un template WordPress, dans le contexte indiqué ; pas au contenu HTML de l’article.
<?php
$id = wp_unique_id( 'atoolpha-search-' );
echo '<label for="' . esc_attr( $id ) . '">Rechercher</label>';
echo '<input type="search" id="' . esc_attr( $id ) . '" name="q">';
Décryptage de l’exemple
La fonction produit une chaîne distincte pour chaque appel pendant la requête. La même valeur alimente for et id, ce qui établit l’association accessible entre le libellé et le champ.
Résultat attendu
Deux instances rendues sur la même page obtiennent des attributs id différents et des labels qui pointent sur le bon champ.
Exercice pratique et vérification
Afficher deux instances identiques du composant, puis vérifier dans le navigateur l’unicité des id et l’association du focus au clic sur leurs labels.
Précautions et limites
Ne jamais utiliser wp_unique_id() pour fabriquer des nonces, des secrets, des identifiants persistants de base de données ou des mots de passe.
À ne pas confondre
Un identifiant HTML généré n’est pas une preuve d’identité ; wp_create_nonce() répond à une problématique de vérification des requêtes.
Diagnostic avancé
Si des contrôles ne ciblent pas le bon champ, inspecter les valeurs id/for dans le DOM et les éventuelles valeurs hardcodées par le thème.
Choix d’architecture et déploiement
La stabilité d’un identifiant HTML doit être pensée différemment de son unicité temporaire. Si un script doit retrouver le même élément après mise à jour partielle, un identifiant stable fondé sur la donnée peut être préférable à un compteur produit à chaque nouveau rendu.
Contrôle avant intégration
Contrôler l’accessibilité, le comportement après mise en cache de fragments HTML et l’absence d’usage de cet identifiant comme secret.
Notions associées
- HTML sémantique
- wp_create_nonce()
- Escaping Data
