wp_is_post_revision()
Définition : wp_is_post_revision() détermine si un identifiant ou objet WordPress désigne une révision de publication. Elle retourne alors l’identifiant du contenu parent, ou false lorsque le contenu testé n’est pas une révision.
Terminologie
Terme officiel : wp_is_post_revision()
Autres appellations : Détection de révision
À quoi cela sert
Elle permet d’éviter de traiter une version de travail comme une publication ordinaire lorsque des traitements personnalisés réagissent aux enregistrements.
Comment cela fonctionne
WordPress possède un type de publication interne pour les révisions. La fonction identifie leur relation parentale et fournit l’ID du contenu d’origine si la donnée examinée est une révision.
Dans quel contexte l’utiliser
À vérifier dans les routines de sauvegarde qui ne doivent pas dupliquer des changements de métadonnées lors d’une révision.
Exemple concret
Un module de suivi ne doit enregistrer une opération métier qu’au moment de la modification du contenu principal.
Exemple de code commenté
Extrait pédagogique PHP pour extension WordPress : adapter au contexte et tester sur un environnement de développement avant tout usage.
<?php
add_action( 'save_post', function ( $post_id ) {
if ( wp_is_post_revision( $post_id ) ) {
return; // Ignorer les objets révision.
}
if ( ! current_user_can( 'edit_post', $post_id ) ) {
return;
}
// Continuer seulement avec un formulaire et un nonce valides.
} );
Explication pas à pas de l’exemple
1. Le hook save_post fournit l’identifiant. 2. wp_is_post_revision() rejette les révisions. 3. Une capacité de modification est contrôlée. 4. Les conditions de sauvegarde devront être complétées.
Résultat attendu
Le traitement ignore les objets révision, et ne poursuit pour les contenus ordinaires que si les contrôles disponibles réussissent.
Mise en pratique guidée
Modifier plusieurs fois un article de test et examiner les objets de révision créés par WordPress. Comparer le retour de wp_is_post_revision() pour l’ID de l’article et pour l’ID d’une révision. Le résultat permet de décider si un traitement de notification doit ignorer la version de travail sans bloquer le contenu principal.
Précautions et limites
Un save_post peut être déclenché dans plusieurs situations. Éviter de supposer qu’une révision et une sauvegarde automatique représentent le même objet.
À ne pas confondre
wp_is_post_revision() détecte les révisions ; wp_is_post_autosave() cible spécifiquement les sauvegardes automatiques.
Termes associés
- wp_is_post_autosave()
- save_post
