J'essaie d'enregistrer une révision d'un type d'article personnalisé. Voici ce que je dois vérifier si le message a un parent:
function save_revision( $post ) {
if ( $post['submitted'] == true ) {
$parent_id = wp_is_post_revision( $post['post_id'] );
...
}
} add_action('init', 'save_revision');
Le problème est que je reçois toujours faux pour $ parent_id même si je sais qu’il existe un post parent pour ce post_id.
Toute aide est appréciée, j'essaie de faire en sorte que cela fonctionne pour toujours.
C'est simple: si $post
n'est pas une révision, wp_is_post_revision()
renvoie false; il suffit de lire le nom de la fonction pour vous en donner la raison. wp_is_post_revision()
renvoie l'ID de publication parent uniquement si la publication donnée est une révision (une révision a toujours une publication parent). Il semble que vous souhaitiez obtenir l'ID de poste parent de $post
sans vérifier si $post
est une révision.
Pour obtenir l'ID de publication parent d'une autre publication, utilisez wp_get_post_parent_id()
:
function save_revision( $post ) {
if ( $post['submitted'] == true ) {
$parent_id = wp_get_post_parent_id( $post['post_id'] );
...
}
}
add_action('init', 'save_revision');
Je sais que c'est un vieux fil, mais pour référence future - le terme "révision" dans Wordpress est un peu déroutant. Ce n'est pas la mise à jour, ou révisée , post ... mais l'ancienne version. La version la plus mise à jour est le "parent".
Ainsi, si vous appelez la fonction wp_is_revision_post()
sur la version actuelle du message, elle retournera toujours false
(et wp_get_post_parent_id()
renverra NULL
) car le message actuel n'est pas considéré comme une "révision". Vous devrez l'appeler lors d'une révision réelle (qui aurait un identifiant différent de celui de la version actuelle du message).