Teilen Sie Beiträge zwischen databaseen

Mein Kunde hat eine ganz bestimmte Lösung für sein WP-basiertes WordPress (Single Site, nicht Multisite) angefordert. Grundsätzlich, was er will ist, sagen wir nach 1000 Posts neue database erstellt werden sollte (mit nur 5 Tabellen, Posts, Postmeta und 3 Taxonomie bezogenen Tabellen) und neue Beiträge sollten in diesem zusammen mit allen Post-Meta gespeichert werden, bis es 1000 erreicht posten und dann Wiederholungen verarbeiten.

Herausfordernder Teil ist, dass alle diese databaseen gleichzeitig aktiv sein müssen, so dass WP in der Lage sein sollte, auf Einträge von der Hauptdatenbank und all diesen neu erzeugten databaseen (mit 5 Tabellen) gleichzeitig zuzugreifen. Dies könnte wahrscheinlich mit hyperdb getan werden . Fragen sind:

  • Wie kann ich wp mitteilen, in welcher database Posts gespeichert werden sollen?
  • Ist das überhaupt möglich?
  • Wenn ja, kann es ohne Änderungen am WP-core gemacht werden?

Solutions Collecting From Web of "Teilen Sie Beiträge zwischen databaseen"

Es ist nicht machbar, wenn Sie alle WordPress-functionen beibehalten möchten. Mögliche Verluste einer solchen Konfiguration sind Such- und RSS-Feeds, wahrscheinlich auch Kategorie- und Autorenseiten.

Wenn Sie gehen und tatsächlich eine neue database für jede 1k Beiträge erstellen, endet das Spiel hier, da es keine einfache Möglichkeit gibt, Daten zwischen verschiedenen databaseen zu teilen. Wenn Sie nur alle 1k Beiträge neue Tabellen erstellen möchten, dann wird es Multi-Site-Feature mögen, die Suche über das gesamte Netzwerk erfordern, nicht elegant aber möglich.

Wie für die expliziten Punkte

  1. es ist härter wegen der künstlichen Anzahlgrenze. Die meisten Schemas, die Daten zwischen DBs verteilen, die ich kenne, basieren auf etwas Hashing der URL, aber das erfordert, dass alle DBs vom ersten Tag an eingerichtet wurden und nicht darauf warten, ein Kontingent zu füllen, bevor der nächste DB erstellt wird.

  2. Es ist, wenn der Besitzer der Website zustimmt, funktional verkrüppelt. Zum Beispiel könnte es für eine Website in Ordnung sein, die nur Zielseiten hat.

  3. Ja, kann getan werden, aber Sie müssen möglicherweise die Datei db.php übersteuern