Sind alle IDs eindeutig?

Ich benutze JSON API-Plugin, um Daten von WordPress in eine App zu ziehen, die ich mache. Ich brauche einen eindeutigen Bezeichner, um sicherzustellen, dass ich keine Duplikate habe. WHILE verwendet auch den Bezeichner, um vom neuesten Post zum ältesten Post zu sortieren. Im Moment bin ich verwirrt, weil ich die 10 letzten Posts gezogen habe. Ich nehme dann die ID und ich versuche, example.com/?id=1774 zu erreichen, aber ich bekomme nicht den richtigen Beitrag. Ich bekomme ein anderes. Mir gehen die Ideen aus?

Solutions Collecting From Web of "Sind alle IDs eindeutig?"

Wenn Sie sich die Beschreibung der verschiedenen Tabellen ansehen, die von WordPress verwendet werden , sind die als “auto_increment” bezeichneten Spalten eindeutig.

Ich bin mir nicht sicher, was Sie tun. Die URL-Struktur, die Sie verwenden, ist keine, die ich erkenne. Das heißt, die Syntax, die Sie mir wünschen, ist folgende:

example.com/?p=1774 

lieber als das:

 example.com/?id=1774 

?p= + eine gültige ID sollte Ihnen immer den Post mit der referenzierten ID geben.

Ja und nein.

  1. Innerhalb eines Blogs / Site- id sind einzigartig. Es sei denn, sie wurden manipuliert (durch Ändern der AUTO_INCREMENT der database oder durch Wiederverwendung alter id , was ein schlechter Zug wäre).

  2. Innerhalb eines WordPress Multisite-Netzwerks sind IDs nicht eindeutig. Ein Blogbeitrag auf einer Website kann die gleiche ID wie ein Blogbeitrag auf einer anderen Website haben. Wahrscheinlich, da jede Seite eine separate database / Tabelle hat. (Das ist mir gerade passiert.)

  3. Für Anwendungen von Drittanbietern (wie die App, die Sie erstellen) sollten Sie die id als global eindeutige Kennung für einen Blog-Post verwenden, denn wenn Sie Daten von verschiedenen WordPress-Sites / Blogs abrufen, dann zwei Blogs von zwei verschiedenen Blogs , könnte dieselbe id (aus dem gleichen Grund wie in Punkt 2 oben erwähnt), und Sie könnten am Ende den falschen Blogpost erhalten, wenn Sie eine Abfrage in Ihrer eigenen database durchführen.

Stattdessen: Verwenden Sie $post->guid (guid bedeutet Global Unique Identifier und ist WordPress ‘Werkzeug für diesen Zweck), und ändern Sie es nie, auch wenn die URL oder der Domain-Name des Blogs ändert (es ist nur ein Bezeichner, also es muss nicht immer mit der URL übereinstimmen). NB: guid muss in unteren Kappen sein, damit es funktioniert.

Mit der GUID können Sie “den Bezeichner nicht als Möglichkeit verwenden, vom neuesten Post zum ältesten Post zu sortieren”. , aber Sie können das client_db_published_at Datum übergeben und stattdessen verwenden (es ist sowieso zuverlässiger und detaillierter):

 // When you already have the $post in question "blog_post[client_db_published_at]" => = get_the_time('c', $post->ID); // c = ISO 8601 = 2004-02-12T15:19:21+00:00 . T is just a whitespace separator here. Ref: http://codex.wordpress.org/Formatting_Date_and_Time#Examples