it-swarm.com.de

Multisite mit einem einzelnen, gemeinsam genutzten benutzerdefinierten Beitragstyp unter Beibehaltung der Site-URL

Kleine Multisite-Einrichtung, zwei sehr unterschiedliche Sites, beide müssen auf einen benutzerdefinierten Beitragstyp event zugreifen. Ich möchte keine Posts duplizieren (es gibt Plugins, die einen Post an das Netzwerk "senden").

switch_to_blog(1) erhält mich Teil Weg dorthin, wo blog 1 des „Master“ Blog ist, dass die event Daten enthält, so weit wie Archiv-Stil-Seiten, die alle Ereignisse auflisten. Aber meine Sorge ist, dass die URL/permalink der Veranstaltung angesehen, wenn sie von blog 2 wird blog 1 zeigen, und dass permalink folgenden nehmen dann den Benutzer auf anderen Blog, verwirrende den Benutzer.

Gibt es eine Lösung (möglicherweise mit Umschreiben), mit der ein Ereignisbeitrag unter //blog1/events/event1 als //blog2/events/event1 angezeigt werden kann, wenn er unter blog 2 angezeigt wird?

1
Tom Auger

Es gibt zwei Möglichkeiten:

  1. Registrieren Sie das CPT auf Blog 2 mit 'show_ui' => FALSE. Hängen Sie Blog 1 in save_post ein und kopieren Sie die Daten in Blog 2.

    • Pro: Sie können in diesen Beiträgen suchen. Richtige Vorlagen werden automatisch verwendet.
    • Con: Duplizierte Daten sind immer ein bisschen ... schmutzig.
  2. Registrieren Sie einen Endpunkt mit einem URL-Schema wie dem CPT auf Blog 1 (EP_ROOT).

    • Pro: Keine doppelten Daten.
    • Con: Sie müssen die Vorlagenlogik manuell implementieren, um die richtige Designdatei zu laden. Und die Suche wird nicht funktionieren.
1
fuxia

Entscheiden Sie, welches Blog die "Datensatzdaten" enthalten soll, verwenden Sie "show_ui" => false in den anderen Blogs und ändern Sie dann die Abfragen, die sich auf diesen Beitrag beziehen, so, dass das entsprechende Tabellenpräfix verwendet wird. Die Daten werden weiterhin im Kontext des von Ihnen angezeigten Blogs ausgefüllt (dh: site_url() funktioniert wie erwartet und Ihre Vorlagen und Ihr Thema sind korrekt - vorausgesetzt, Sie verwenden unterschiedliche Vorlagen und Themen für unterschiedliche Blogs) und Sie Daten werden nirgendwo dupliziert.

Der Nachteil ist, dass dies in einem Szenario mit einem sehr großen Netzwerk von Blogs möglicherweise nicht mehr zu handhaben ist.

Dies bedeutet auch, dass Sie Zugriff auf das "Blog of Record" haben müssen, um die Post-Daten eingeben und aktualisieren zu können, es sei denn, Sie sind auch bereit, sich in die save_post -Aktion aller anderen Blogs einzuklinken und sie schriftlich zu täuschen die Daten zu den Tabellen des anderen Blogs. Sie müssten dann auch die List Tables und die Edit-Post-Anfrage dieses Post-Typs fummeln, was, gelinde gesagt, entmutigend ist.

Diese Lösung funktioniert bei Inhalten, die von einem Administrator mit Zugriff auf das primäre Blog verwaltet werden, die jedoch in anderen Blogs im Netzwerk gepostet oder in diesen sichtbar sein müssen. Es ist nicht angemessen, Inhalte, die von Administratoren/Nutzern anderer Blogs im Netzwerk erstellt werden, mit den anderen Blogs in diesem Netzwerk zu teilen. Für diesen Ansatz siehe toschos Antwort hier .

0
Tom Auger