Ich verstehe, dass Post-IDs eindeutig sind , aber sind sie als persistente Daten-IDs zuverlässig ?
Gibt es eine Garantie dafür, dass sich die Post-IDs durch eine Migration oder einen anderen Datenaustausch nicht ändern?
Ich verstehe, dass WordPress hauptsächlich mit MySQL implementiert wird, daher werden IDs vom AUTO_INCREMENT
Mechanismus gesteuert . Gibt es jedoch eine Einschränkung auf Wordpress-Seite, die dieses Verhalten in Zukunft oder möglicherweise bei einer anderen Persistenzimplementierung (wie MongoDB) ändern würde?
Ja.
quelle
Um alles, was gesagt wurde, zusammenzufassen, lautet die Antwort:
Ja, IDs sind dafür zuverlässig, solange Sie den WordPress XML-Exporter / -Importer nicht verwenden, um die betreffenden Beiträge in eine andere Installation zu übernehmen. Solange Sie die vorhandene Datenbank migrieren und WordPress nicht von Grund auf neu installieren, bleiben die IDs gleich.
PS1: Ja, wie Mark Kaplun feststellt, können IDs geändert oder wiederverwendet werden, wenn Sie sie manuell ändern oder wiederverwenden , aber das wissen Sie bereits, und dies gilt für jedes Feld in einer Datenbank.
PS2: Das GUID-Feld wp_posts sollte nicht als konstant eingestuft werden, da es von den URLs der ursprünglichen Posts abhängt und bei der Migration der Website versehentlich durch neue URLs ersetzt werden kann. Offensichtlich würde sich auch die GUID bei Verwendung des Exporters / Importers ändern .
quelle
Die Antwort kann sowohl Ja als auch Nein sein.
Die ID muss für eine Site eindeutig sein. Sie wissen, wenn es zwei IDs gibt, kann der Inhalt nicht bereitgestellt werden. Verwenden Sie als WP die ID, um Inhalte für Posts und Seiten bereitzustellen. Die WordPress-Schleife funktioniert so. Sie können es also für Ihre Theme- oder Plugin-Entwicklung verwenden. Damit wird es kein Problem geben.
Es kann jedoch schmerzhaft sein, wenn Sie Inhalte von einer Website auf eine andere exportieren. Da die neue Website möglicherweise eine eindeutige ID für den neu hinzugefügten Inhalt generiert. In diesem Fall kann die ID keine gute Lösung sein.
Sie können also Slug anstelle von IDs verwenden.
PS Slug kann auch geändert werden. Es wird jedoch nicht automatisch geändert, wenn Sie Inhalte von einer Website auf eine andere importieren.
Hoffe das hilft. Sabbir
quelle
Post-IDs sind nicht unbedingt eindeutig. Ref. Meine Antwort auf den Beitrag, auf den Sie verlinkt haben: https://wordpress.stackexchange.com/a/209832/71131
Innerhalb eines Wordpress Multisite-Netzwerks
id
sind diese nicht eindeutig . Ein Blog-Beitrag auf einer Website kann dieselbe ID haben wie ein Blog-Beitrag auf einer anderen Website. Wahrscheinlich, da jede Site eine separate Datenbank / Tabelle hat. (Dies ist mir gerade passiert.) Dies ist problematisch, wenn Sie in Ihrem Code (in einem Plugin oder in einem Drittanbieter, der mit der Wordpress-Installation kommuniziert) die Wordpress verwendenid
, um auf einen bestimmten eindeutigen Blog-Beitrag in Wordpress zu verweisen Multisite-Netzwerk.Daher empfehle ich
$post->guid
stattdessen die Verwendung von Wordpress als Global Unique IDentifier. Vielen Dank an @Mark Kaplun, der mich darauf aufmerksam gemacht hat. NB: Die Guid muss in unteren Kappen sein, damit sie funktioniert.@guidod erwähnte das Risiko, dass "[die Guid] versehentlich durch neue URLs ersetzt werden kann, wenn die Website migriert wird" , weil jemand möglicherweise alle URIs sucht / ersetzt und / oder den URI-Teil der GUID als aktualisieren möchte Nun, obwohl sie niemals etwas in der GUID ändern sollten. Um dieses Risiko zu minimieren, können Sie das auch
$post->ID
als Backup speichern . Wenn Ihr Drittanbieter, der auf Blog-Beiträge in Ihrer Wordpress-Installation zugreift und auf diese verweist, keinen Beitrag basierend auf der Richtlinie finden kann, kann versucht werden, die ID des Beitrags zu ermitteln (denken Sie jedoch daran, sie anhand des entsprechenden Blogs / der entsprechenden Website zu kontextualisieren, wenn Sie dies tun es auf einer Multisite-Installation).quelle