2つの非常に異なるサイトの小規模なマルチサイト設定で、両方ともevent
カスタム投稿タイプにアクセスする必要があります。私は投稿を複製したくありません(投稿をネットワークに「ブロードキャスト」するいくつかのプラグインがあります)。
switch_to_blog(1)
は私を途中で手に入れます、ここでblog 1
はevent
データを含む「マスター」ブログです、すべてのイベントをリストするアーカイブスタイルのページまで。しかし、私の懸念は、blog 2
から見たときのイベントのURL /パーマリンクがblog 1
を指すことになり、そのパーマリンクをたどるとユーザーが他のブログに移動し、ユーザーが混乱することです。
//blog1/events/event1
から見たときに//blog2/events/event1
のイベント投稿がblog 2
として表示されるようにする(おそらく書き換えを使用する)解決策はありますか?
2つの選択肢があります。
ブログ2のCPTを'show_ui' => FALSE
で登録します。ブログ1をsave_post
にフックし、データをブログ2にコピーします。
ブログ1のCPTのようなURLスキームでエンドポイント を登録します(EP_ROOT
)。
どのブログに「レコードのデータ」を含めるかを決定し、他のブログで"show_ui" => false
を使用してから、適切なテーブルプレフィックスを使用するようにその投稿を処理するクエリを変更します。あなたが閲覧しているどのブログのコンテキスト内でもデータは入力されます(例:site_url()
は期待通りに動作し、あなたのテンプレートとテーマは正しいでしょう - あなたが異なるブログに対して異なるテンプレートとテーマを使用していると仮定)。どこにも重複データはありません。
欠点は、非常に大規模なブログネットワークがあるシナリオでは、これが管理できなくなる可能性があることです。
他のすべてのブログのsave_post
アクションにフックしてそれらを書き込みに騙す準備ができていない限り、投稿データを入力および更新できるようにするには、「記録のブログ」にアクセスする必要があります。他のブログのテーブルへのデータ。その場合、その投稿タイプのリストテーブルとedit-postリクエストも同様に曖昧にする必要があるでしょう。これは控えめに言っても困難です。
このソリューションは、主要ブログへのアクセス権を持つ管理者によって管理されるコンテンツの場合に機能しますが、ネットワーク上の他のブログに投稿するか表示する必要があります。ネットワーク上の他のブログの管理者/ユーザーによって作成されるコンテンツを、そのネットワーク上の他のブログと共有することは適切ではありません。そのアプローチについては、ここで toschoの答えを参照してください 。