7
votes

Insérez l'identifiant postal avec wp_insert_post

Comment puis-je choisir Post ID, lors de l'insertion de nouveau post, ex: xxx

veut insérer un nouveau message avec ID = 3333


3 commentaires

ID est un champ principal d'incrémentation automatique dans la base de données. Je suppose que vous pouvez le faire. Pourquoi voulez-vous faire exactement cela?


J'ai aussi une situation où cela est nécessaire. Je migre des milliers de messages personnalisés d'un autre site, chacun avec taxonomie et métadonnées. En définissant le post ID à la même manière que l'ancien site, il est beaucoup plus facile d'importer le reste des données. J'ai pu utiliser importateur_id avec succès, comme suggéré par @DAVESPINALL ci-dessous


Pour les futurs lecteurs, veuillez faire défiler ci-dessous la réponse acceptée car il y a une réponse utile très ci-dessous.


5 Réponses :


2
votes

Désolé mon pote, pas faisable. Voici ce que les Devs disent au Codex:

important : définir une valeur pour $ post ['id'] ne créera pas de message avec ce numéro d'identification. Définition de cette valeur entraînera la mise à jour de la fonction avec ce numéro d'identification avec les autres valeurs spécifiées en $ post. En bref, insérer un nouveau post, $ post ['ID'] doit être vide ou non défini du tout.

http://codex.wordpress.org/funt_reference/wp_insert_post


1 commentaires

Ce n'est pas réellement la bonne réponse (malgré l'acceptation). Voir cette réponse à la place Stackoverflow.com/a/8153962/192705



0
votes

Il est possible de le faire, tout simplement pas avec la fonction insertion de l'API. Vous pouvez écrire votre propre requête d'insertion à la place. Vous voulez toujours utiliser l'API quand vous le pouvez, mais parfois ce n'est pas possible. La requête ressemblerait à ceci: xxx

Vous devez vous assurer que l'ID n'existe pas déjà dans la base de données. Si le schéma post-table change à l'avenir, vous devrez peut-être mettre à jour la requête pour tenir compte des modifications.


0 commentaires

23
votes

pensé que vous aimeriez peut-être savoir que vous pouvez utiliser 'importateur_id' au lieu de 'id' et il "Essayera" et utiliser cela.

Voir le deuxième exemple ici: http://codex.wordpress.org/funt_reference/wp_insert_post# Exemple


0 commentaires

1
votes

comme Daveaspinall dire. Je fais une fonction qui fait cela. XXX PRE>

Exemple: P>

simpleImportPost('My Post 35',35,"35 Content");


0 commentaires

8
votes

Voici ma solution simple: xxx

'id' => post_id mettra à jour cet article, tandis que "importateur_id '=> post_id créera un nouveau message avec cet identifiant.

Vous pouvez également faire boucler et nourrir les ID pour exécuter plusieurs insertions / mises à jour sans risque de créer une quantité infinie de nouveaux postes.


1 commentaires

Merci d'avoir raconté "importer_id"