Benutzerdefinierter Posttyp zum Synchronisieren in eine separate databasetabelle eingeben

Ich habe einen benutzerdefinierten Post-Typ, der zwischen zwei verschiedenen Websites in verschiedenen Servern synchronisiert werden muss. Wenn eine Site bearbeitet, eingefügt oder gelöscht wird, muss die andere database auch ihre database für die Änderung aktualisieren. Das Problem, das ich sehe, ist, dass die IDs zwischen den beiden databaseen versetzt werden.

Mein Grundprinzip ist, warum kann ich keinen benutzerdefinierten Post-Typ erstellen, der in einer anderen databasetabelle untergebracht werden soll, und nur diese eine Tabelle zwischen den beiden Installationen synchronisieren?

Das Problem, das ich sehe, ist, dass ich Konflikte wie URLs berücksichtigen muss. Page Slug “Hallo-Welt” und benutzerdefinierte Beitragstyp Slug “Hallo-Welt” beim Zugriff auf die URL site.com/hello-world.

Wer weist mich in eine Richtung?


Edit: Mehr darüber suchen und darüber nachdenken. Wie wäre es mit save_post, prüfen Sie, ob es der benutzerdefinierte Post-Typ ist, eine Verbindung zur anderen database herstellt und eine letzte Einfüge-ID ausführt, diese lokal speichert und dann die externe database mit der internen ID des Posts aktualisiert?

Bildbeschreibung hier eingeben

Solutions Collecting From Web of "Benutzerdefinierter Posttyp zum Synchronisieren in eine separate databasetabelle eingeben"

Aufgrund der obigen Details kann ich mir folgende Vorschläge vorstellen:

  1. Erstellen Sie ein Setup, bei dem Sie zwei Server verwenden, die dieselbe database verwenden. Dies kann funktionieren, wenn beide Setups identisch sind

  2. Synchronisieren Sie die Daten (Option 1). Schreiben Sie ein Plugin, das Sie auf beiden Servern installieren, und dieses Plugin liest regelmäßig Daten aus der anderen database und aktualisiert seine eigenen Datensätze

  3. Synchronisieren Sie die Daten (Option 2). Schreiben Sie die functionalität, die beim Aktualisieren eines Datensatzes in database 1 einen REST-API-Aufruf austriggers, der an die zweite Installation gesendet wird. Dann erhält diese zweite Installation die aktualisierten Daten von der ersten Installation über diesen Aufruf und aktualisiert ihre eigenen Datensätze.

  4. Erstellen Sie eine zentrale database, auf die beide Installationen zugreifen können, und diese zentrale database enthält gemeinsame Daten für beide Installationen

  5. Haben Sie an WordPress-Netzwerk-Setup gedacht (nicht sicher, ob dies in dieser Umgebung funktioniert, müssen Sie entscheiden, ob dies Ihren Anforderungen entspricht)

Persönlich mag ich die Optionen 3 und 4 basierend auf meinem Verständnis des Problems, aber ich habe nicht das volle Bild wie du.

Wenn Sie eine separate Tabelle erstellen würden, mit der Sie beide WordPress-Installationen verbinden möchten, müssen Sie benutzerdefinierte functionen zum Löschen, Bearbeiten und Hinzufügen von functionen hinzufügen, damit die Daten an die richtige database gesendet werden.

Wenn Sie diese benutzerdefinierten functionen bereits erstellen müssen (viele Möglichkeiten, um benutzerdefinierte Post-Posts zu bearbeiten, zu bearbeiten, zu löschen usw.), haben Sie einfach nur eine Website mit der ‘Master-DB’ und die andere Site verwendet nur wpdb, um eine Verbindung herzustellen das andere db und holen, bearbeiten, posten. Es besteht keine Notwendigkeit für eine komplizierte Überprüfung der Konsistenz, da alles in einer Tabelle gespeichert ist.