Comparer l’identifiant WordPress d’un contenu à un numéro de dossier client donne une fausse impression de simplicité : l’ID auto-incrémenté de la table wp_posts avance à chaque contenu créé sur le site, articles et pages compris, et surtout il n’est jamais garanti stable si une fiche est un jour supprimée puis recréée sous un autre identifiant.
Un cabinet d’avocats qui veut un référencement interne fiable a besoin d’un numéro dédié, propre aux fiches clients, attribué une seule fois à la création et qui ne change plus jamais ensuite, même si d’autres contenus sont ajoutés ou supprimés entre-temps sur le site.
Pourquoi ne pas utiliser directement l’ID WordPress
Outre le risque de collision avec d’autres types de contenu, l’ID WordPress ne permet aucun format personnalisé : impossible d’y intégrer une année, un préfixe de cabinet ou une remise à zéro annuelle sans construire une numérotation distincte, stockée séparément.
Un compteur stocké dans wp_options

La table wp_options permet de stocker un compteur global, incrémenté à chaque nouvelle fiche client créée, avec une protection contre les accès concurrents grâce à la fonction native update_option() couplée à une vérification avant écriture.
function generer_numero_dossier() {
$dernier_numero = (int) get_option( 'cabinet_dernier_numero_dossier', 0 );
$nouveau_numero = $dernier_numero + 1;
update_option( 'cabinet_dernier_numero_dossier', $nouveau_numero, false );
return sprintf( 'D-%04d', $nouveau_numero );
}
add_action( 'save_post_fiche_client', function( $post_id, $post ) {
if ( $post->post_status !== 'publish' ) {
return;
}
$numero_existant = get_post_meta( $post_id, 'numero_dossier', true );
if ( empty( $numero_existant ) ) {
update_post_meta( $post_id, 'numero_dossier', generer_numero_dossier() );
}
}, 10, 2 );
La vérification empty( $numero_existant ) est la clé du dispositif : elle garantit qu’un dossier déjà numéroté ne reçoit jamais un second numéro lors d’un enregistrement ultérieur de la fiche, par exemple après une simple correction du texte.
Le risque des créations simultanées
Sur un cabinet avec plusieurs collaborateurs saisissant des fiches en même temps, deux enregistrements presque simultanés peuvent lire la même valeur avant l’incrémentation. Pour l’éviter réellement, mieux vaut passer par une requête SQL directe avec incrémentation atomique plutôt que par deux appels distincts.
global $wpdb;
$wpdb->query( "UPDATE {$wpdb->options}
SET option_value = option_value + 1
WHERE option_name = 'cabinet_dernier_numero_dossier'" );
$nouveau_numero = (int) $wpdb->get_var(
"SELECT option_value FROM {$wpdb->options}
WHERE option_name = 'cabinet_dernier_numero_dossier'"
);
Choisir un format lisible
- Préfixe fixe du cabinet, utile en cas de fusion future avec un autre cabinet
- Année de création intégrée, pour un classement chronologique immédiat
- Zéros de tête pour un tri alphabétique cohérent avec le tri numérique
Remise à zéro annuelle
Certains cabinets préfèrent repartir de un chaque nouvelle année, avec un format du type 2023-0001. Il suffit alors de stocker le compteur sous une clé incluant l’année en cours, plutôt qu’une clé unique permanente.
Un numéro de dossier qui change de format en cours d’année complique tous les classements papier existants : le format doit être figé avant la première fiche créée, pas ajusté après coup.
Exposer le numéro dans les recherches et exports
Une fois attribué, le numéro de dossier mérite d’être rendu triable et filtrable directement dans la liste d’administration des fiches clients, via l’ajout d’une colonne personnalisée. Un cabinet qui recherche un dossier précis lors d’un appel téléphonique gagne un temps précieux à pouvoir trier par numéro plutôt que de parcourir un titre approximatif.
add_filter( 'manage_fiche_client_posts_columns', function( $colonnes ) {
$colonnes['numero_dossier'] = 'N° dossier';
return $colonnes;
} );
add_action( 'manage_fiche_client_posts_custom_column', function( $colonne, $post_id ) {
if ( $colonne === 'numero_dossier' ) {
echo esc_html( get_post_meta( $post_id, 'numero_dossier', true ) );
}
}, 10, 2 );
En résumé
Un compteur simple dans wp_options, protégé contre la double attribution, suffit à générer un numéro de dossier fiable et lisible, sans dépendre de l’identifiant technique de WordPress. L’archivage légal des dossiers, une fois le numéro attribué, répond à des obligations distinctes qui dépassent le cadre de cette seule numérotation.