サポート » マルチサイト » マルチサイトでの記事共有

  • ドメイン直下サブディレクトリのマルチサイトを複数運営しています。

    デザインを分けるためマルチサイト化しましたが、
    ポータルサイト(ドメイン)のトップページにマルチサイトの記事を出したり、
    逆に各サイトにポータルの記事を出したりする必要が出てきました。

    プラグインでないか探してみましたが見当たらず(あるのでしょうか?)、
    それぞれのサイトの記事を共有する設定方法が知りたいです。

    なお、デザインの変更を加えていますが元テーマは全て同じものを使用しています。

    よろしくお願いします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • モデレーター Daisuke Takahashi

    (@extendwings)

    まず、そういった設定とかは一切ありません。マルチサイトは複数の「個別のサイト」を運用するための仕組みなので、そもそも想定外の使い方という前提です。

    自力でプラグインを書けばできないこともないでしょうが、相互に投稿を表示させるよう、普通に書くと、投稿が増えるたびにどんどん重くなっていくような仕様になるので、いろいろと面倒な工夫が必要です。

    デザインを分けるだけだったら、テンプレートを分けたほうがいいかもしれません。

    モデレーター Okamoto Hidetaka

    (@hideokamoto)

    投稿のリストや内容であればWP REST APIを使って取得するのも一つですね。
    https://wordpress.org/plugins/rest-api/

    JavaScriptでAjax通信させるかPHPならwp_remote_get関数で取得して表示するかになります。
    https://codex.wordpress.org/Function_Reference/wp_remote_get
    検索クエリの書き方などを覚える必要がありますが、おおよそWP_Queryでできることは大体できるので多分大丈夫かなと

    一応、古い情報ですが、

    http://foreignkey.jp/archives/1192

    みたいなプラグインなどもあります。

    switch_to_blog()
    を使うとマルチサイト内の他のブログの情報を取得することができますよ

    運用しているサイトの数が少ないのであれば、wp_get_sites()でサイト情報を取得し、sysbirdさんがおっしゃっているswitch_to_blog()でブログを切替ながら投稿を取得すればいいかもしれません。

    日付の降順にソートしたい場合、必要な投稿を全て取得した後にソートする必要があります。

    一方、ポータルサイトなどでサイト数が非常に多い場合、switch_to_blog()で切替ながら投稿を取得すると、クエリを何度も流さないとならないうえにキャッシュすべき投稿数も増えるため、wpdbを使ってsqlで横断的に取得した方がいいと思います。
    サイトの情報はやはりwp_get_sites()で取得できますので、sqlを組み立てるのはさほど難しくないでしょう。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「マルチサイトでの記事共有」には新たに返信することはできません。