web-dev-qa-db-fra.com

messages en double lorsque vous essayez de mettre à jour un message à l’aide de wp_insert_post.

Sur une base de données wordpress vide, j'insère un exemple de publication à l'aide de wp_insert_post.

Puisqu'il s'agit d'une base de données vide, le premier message que j'ajoute se termine par l'id 1. Et je vérifie que dans les wp_posts, tout se passe bien (bien, pour une raison quelconque, post_name est vide mais je ne veux pas me concentrer sur cela maintenant).

La question est, mais quand je veux mettre à jour cette publication (en utilisant à nouveau wp_insert_post), au lieu de mettre à jour le premier enregistrement, je finis par obtenir la publication id 2!

Si vous demandez comment je mets à jour l'enregistrement avec wp_insert_post, je règle simplement l'ID sur 1 lorsque je construis mon tableau $ data pour wp_insert_post.

Le codex indique que lorsque vous fournissez l'élément de tableau 'ID' au tableau $ data de wp_insert_post, il met simplement à jour cette publication avec cet ID.

Eh bien, dans mes cas, ce n'est pas le cas.

Je finis par avoir l'ID de l'article 2. L'auteur de l'ID de poste 2 prend la valeur 0 (l'auteur de l'ID de post était 1) et le nom de post de post id 2 est 1-révision (id de post 1s le post_name était vide comme je l'ai dit ci-dessus)

Une idée de pourquoi cela pourrait se produire?

Ou devrais-je simplement oublier l'idée d'utiliser wp_insert_post pour les mises à jour ultérieures?

2
Average Joe

Vous devez insérer des publications avec wp_insert_post et mettre à jour les publications avec wp_update_post . wp_update_post ajoutera une révision à la base de données et mettra à jour les données de publication/brouillon publiées.

3
SickHippie