web-dev-qa-db-fra.com

Les post-ID sont-ils fiables?

Je comprends que les ID de publication sont uniques , mais sont-ils fiables en tant qu'ID de données persistantes?

Plus précisément, existe-t-il une garantie que, par une migration ou un autre échange de données, les identifiants postaux ne changeront pas?

Je comprends que wordpress est principalement implémenté avec MySQL, donc les identifiants sont régis par le mécanisme AUTO_INCREMENT; Cependant, y a-t-il des mises en garde à la fin de Wordpress qui pourraient changer ce comportement à l'avenir, ou potentiellement avec une autre implémentation de persistance (telle que MongoDB)?

7
Qix

Je comprends que les ID de publication sont uniques, mais sont-ils fiables en tant qu'ID de données persistantes?

Oui.

9
Johannes Pille

La réponse pédante est NON.

Bien que les identifiants soient uniques, ils peuvent changer sans changement dans UX tant que le changement conserve la cohérence de la base de données. Et tout en créant une nouvelle publication générera un nouvel ID unique, vous pouvez également créer une publication via un code pour réutiliser un "ancien" ID.

En pratique, ils sont fiables, mais si la fiabilité est très importante pour vous, vous devez joindre certaines données à la poste, qui serviront d'identifiant fiable pour vos propres besoins.

Mise à jour: totalement oubliée, car elle est rarement utilisée, et la plupart du temps, je l'ai vue utilisée, mais elle a été utilisée de manière incorrecte, mais wordpress possède par définition un identifiant unique fiable, qui est le _guid

6
Mark Kaplun

Pour récapituler tout ce qui a été dit, la réponse est:

Oui, les identifiants sont fiables pour cela, tant que vous n’utilisez pas l’exportateur/importateur WordPress XML pour transférer les publications en question dans une installation différente. Tant que vous migrez la base de données existante et que vous n'installez pas WordPress à partir de rien, les identifiants restent les mêmes.

PS1: Oui, comme le dit Mark Kaplun, les identifiants peuvent changer ou être réutilisés si vous les modifiez manuellement ou les réutilisez vous-même , mais vous le savez déjà, et cela est vrai pour tous les champs de la base de données.

PS2: Le champ wp_posts GUID ne doit pas être approuvé comme une constante, car ils dépendent des URL des publications d'origine et peuvent être remplacés par inadvertance par de nouvelles URL lorsque le site Web est migré.GUID changerait également lors de l'utilisation de l'exportateur/importateur.

3
guidod

La réponse peut être à la fois oui et non.

L'identifiant doit être unique pour un site. Vous savez, s'il y avait deux identifiants, le contenu ne peut pas être servi. En tant que WP, utilisez id pour diffuser du contenu pour les publications et les pages. La boucle WordPress est conçue pour fonctionner comme ceci. Vous pouvez donc l'utiliser pour votre développement de thème ou de plugin. Cela ne posera aucun problème.

Mais vous pouvez avoir du mal à exporter du contenu d’un site Web à un autre. Comme le nouveau site Web pourrait générer un identifiant unique pour le contenu nouvellement ajouté. Dans ce cas, l'identifiant ne peut pas être une bonne solution.

Vous pouvez donc utiliser slug à la place des identifiants.

P.S. La limace peut également être changée. Mais cela ne changera pas automatiquement lorsque vous importerez du contenu d'un site Web à un autre.

J'espère que cela t'aides. Sabbir

0
WpMania.Net

Les identifiants de publication sont pas nécessairement unique. Réf. ma réponse sur le message que vous avez lié à: https://wordpress.stackexchange.com/a/209832/71131

Dans un réseau multisite Wordpress, les noms id ne sont pas uniques . Un article de blog sur un site peut avoir le même identifiant qu'un article de blog sur un autre site. Probablement puisque chaque site a une base de données/table séparée. (Cela m'est arrivé.) Ceci est problématique si, dans votre code (dans un plugin ou dans un service tiers communiquant avec l'installation de Wordpress), vous utilisez Wordpress id pour faire référence à un article de blog unique spécifique sur le Multisite Wordpress. Réseau.

Par conséquent, je recommande d'utiliser plutôt $post->guid, qui est ce que Wordpress a dédié en tant qu'identifiant unique global. Merci à @Mark Kaplun de m'avoir informé de cela. NB: Le guid doit être en minuscule pour que cela fonctionne.

@guidod a mentionné le risque que "[[le guide puisse] être remplacé par inadvertance par de nouvelles URL lorsque le site Web est migré", car quelqu'un pourrait effectuer une recherche/remplacement sur tous les URI et L'URI fait également partie du GUID, même s'ils ne doivent jamais rien changer dans le GUID. Pour atténuer ce risque, vous pouvez également stocker le $post->ID en tant que sauvegarde. Si votre service tiers accédant aux publications de blog de votre installation Wordpress et ne faisant pas référence à celles-ci, ne peut pas trouver une publication basée sur le GUID, vous pouvez essayer de l'identifier (mais n'oubliez pas de la contextualiser en fonction du blog/site approprié sur une installation multisite).

0
Magne