web-dev-qa-db-fra.com

Un article (post) id change-t-il jamais?

Je travaille donc sur un plugin pour Wordpress, ainsi que sur un novice. Je dois utiliser l'identifiant d'un article wordpress, ou d'un article de blog, comme identifiant de référence unique ou, disons, en termes de base de données, une clé unique ou primaire.

L'ID change-t-il jamais sur un blog?

Informations de fond supplémentaires ..:

J'utilise cette fonction pour obtenir l'identifiant d'un message unique:

the_ID();

De plus, l'URL d'un article de blog sur mon site de test a un paramètre avec un numéro (numéro d'identification?):

?p=87

Mais j’ai vu des blogs dont le titre est inclus dans l’URL au lieu du paramètre p = 87.

Quand j'imprime la fonction the_ID (); , il renvoie le paramètre numéro 87. Puis-je être sûr qu'il ne change pas et l'utiliser sur des sites externes à des fins de liaison?

1
Ihsan

Non, ils ne changent pas, mais vous ne devriez pas compter sur eux pour les sites externes.

Si nous parlons uniquement de la base de données sur un site WordPress individuel, alors:

  • S'il s'agit d'un article/d'une page publié/établi, alors oui, l'ID ne changera que pour le supprimer.
  • Si c'est une révision, un brouillon, etc., l'ID ne changera pas, mais il ne survivra pas très longtemps non plus. Ce serait un mauvais morceau de données à attacher à

Une fois que nous quittons ce domaine, nous entrons dans le domaine de la portabilité des données. Si vous exportez les données ou utilisez RSS, l'ID de publication n'est pas disponible et ne survit pas aux importations et aux exportations.

Alors, que dois-je faire si je suis ...

Pour les tables et stocker les références aux publications dans la base de données ou Post Meta

Utiliser les identifiants de post.

Pour détecter les doublons sur d'autres sites/programmes en dehors de votre installation WordPress

Utilisez des GUID post. Celles-ci sont transmises via RSS et d'autres, et doivent rester les mêmes tant que l'URL de vos publications ne change pas brutalement.

Mettre dans mon code

Ne jamais coder en dur les identifiants de post dans un thème, ce sont ce que nous appelons des "valeurs magiques" et ils sont horriblement mauvais pratiques en programmation. Pas seulement WordPress, mais tout code qui en possède est un mauvais code par définition. Évitez comme la peste.

Utilisez un identifiant de publication stocké dans une option avec une interface graphique pour le définir dans la zone du tableau de bord, ou extrayez les identifiants de publication des publications d'un terme contenant un slug connu.

Pour une table personnalisée ou un stockage de données personnalisé

Je vous conseillerais plutôt de compter surles taxonomies personnaliséesetpost meta. Vos tables personnalisées sont très probablement inutiles et moins performantes car elles ne seront pas prises en charge par de nombreux mécanismes de mise en cache.

Si vous le faites, vous pouvez donc répertorier les derniers articles de blog sur le site A dans la barre latérale du site B.

Ensuite, vous devriez soit les extraire en utilisant RSS (peut-être un widget personnalisé pour pouvoir les styler de manière appropriée), soit utiliser une installation multisite.

En interne cependant, faites toujours référence à un message par son identifiant

Vous voulez savoir sur les termes et les catégories

Il en va de même, utilisez les identifiants de terme en interne, utilisez les slug de terme en externe.

URL

Vous avez mentionné les URL. La raison pour laquelle vous avez? P = 86 etc. est parce que vous n’avez pas activé les permaliens.

Mais si vous avez activé les permaliens, l’URL? P = 86 fonctionnerait toujours.

Par exemple. Ces URL sur mon site fonctionnent toutes les deux:

Les autres peuples permaliens peuvent ne pas prendre le même format.

3
Tom J Nowell

Lorsqu'une publication est enregistrée, toutes les données sont enregistrées dans la base de données et un identifiant unique est attribué à cette publication. Toutes les informations et les pièces jointes pour cette publication sont également liées à l'ID unique de la publication. Cet identifiant ne changera jamais, cet article aura pour toujours cet identifiant. La poste conserve cet identifiant jusqu'à sa suppression définitive.

2
Pieter Goosen