J'écris un plugin qui permettra d'écrire des posts depuis le front-end. Ces publications doivent être vérifiées par l'administrateur avant d'être publiées. Maintenant, si l'administrateur modifie l'article ou publie l'article, l'auteur de l'article est changé de l'auteur original à l'administrateur. Comment puis-je empêcher ça?
Les éditeurs administratifs pourraient corriger l’auteur manuellement .
Alternativement, vous pouvez ajouter des méta-données post personnalisées pour désigner l'auteur d'origine. Ensuite, en vous connectant aux actions publish_post
OU transition_post_status
(ou même save_post
pour cette question), vous pouvez vérifier la présence des métadonnées lors de la publication d'un article et, le cas échéant, remplacer l'auteur de l'article par l'original des métadonnées.
Tenter de l'assommer avec un seul crochet:
function correct_post_data( $strNewStatus, $strOldStatus, $post ) {
/* Only pay attention to posts (i.e. ignore links, attachments, etc. ) */
if( $post->post_type !== 'post' )
return;
/* If this is a new post, save the original author into the post's meta-data. */
if( $strOldStatus === 'new' ) {
update_post_meta( $post->ID, 'original_author', $post->post_author );
}
/* If this post is being published, try to restore the original author */
if( $strNewStatus === 'publish' ) {
$originalAuthor = get_post_meta( $post->ID, 'original_author' );
/* If this post has an original author and it's not who the post says it is, revert the author field. */
if( !empty( $originalAuthor ) && $originalAuthor != $post->post_author ) {
$postData = array(
'ID' => $post->ID,
'post_author' => $originalAuthor
);
wp_update_post( $postData ); //May wish to check if this returns 0 for error-handling
}
}
}
add_action( 'transition_post_status', 'correct_post_data' );
Une vérification de !is_admin()
quelque part pourrait également être utile pour confirmer que l'utilisateur se trouve quelque part sur le site du site.
J'ai rencontré le même problème il y a quelques semaines. Mon problème était que j'utilisais un type de publication personnalisé et que je n'avais pas ajouté de support pour l'auteur. Il a toujours été publié par le bon auteur, mais lorsque l’administrateur a changé de statut ou mis à jour le message, cet administrateur est devenu l'auteur du message.
Essayez d'ajouter un support pour l'auteur et voyez si cela aide!