wordpressにはそういう機能やプラグインはありませんが、このソースでできます。
PHPとpearでXML-RPCを利用してWordPressへ投稿
http://www.labs816.com/projects/note/wiki/PHP%E3%81%A8pear%E3%81%A7XML-RPC%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%A6WordPress%E3%81%B8%E6%8A%95%E7%A8%BF
▽2
●
a-kuma3 ●100ポイント ベストアンサー |
まずは、ぼくのスペックの紹介から。
プログラム系の質問は、結構、回答していますが、PHP とか WordPress は、あまり得意ではありません。
なので、マニュアルを読んだり、検索をして回答することが多いです(短いプログラムだったら、たまに動かしてみたりしますが)。
人力検索には PHP や WordPress が得意な方もいらっしゃるので、探した経緯も含めて回答します(冗長ですみません)。
WordPress といっても、PHP で DB をアクセスして HTML を作るプログラムには変わりありませんから、別々に作ったアプリケーションが、同じ DB を読む、というのは当たり前にできるだろう、と思いました。
データベースに接続するための情報(ホスト、ポート、データベース名、ユーザID、パスワード)と、テーブル名が同じであれば良さそうだ、というところから検索してみました。
最初に見つけたのは、ここです。
同じデータベース内に複数の WordPress をインストールして、ある WordPress から、別の WordPress のテーブルを読み込む、ということのようです。
$wpdb という変数に入ってるクラス(クラス名も wpdb)で、データベースのアクセスをラップしているようです。
ちなみに、ひとつのデータベースに、複数の WordPress 用のテーブルを入れちゃう、というのは、そこそこやられているようです。
たとえば、ここ。
http://www.seotemplate.biz/blog/wordpress-tips/1048/
管理画面の範囲だけでも、いけるようです。
テーブルの接頭辞を別々にすることで、複数のテーブル群がひとつのデータベースに収まるようにするということらしい。
ということは、接頭辞を同じにしてしまえば、テーブルも共有できそうです。
init のフィルタを作成して、$wpdb を置き換えるという方法を取ってます。
ちょっとコードが化けてる
$wpdb->set_prefix('サイトAのプレフィックス');
ではなくて、
$wpdb->set_prefix('サイトAのプレフィックス');
こうですよね、というのと、
サイトBの管理画面に入れなくなったので、管理画面のURLとログインURLの時はwpdbを新規に作らないようにした。
Wordpressで複数サイトで記事共有 | 株式会社LIG
このあたりのコードが書かれていないので、そのまま使うわけにはいかなそうです。
wp-config.php を丸っとコピーして、フィルターで URL のドメイン部分を変えてます。
こっちも、無理矢理な感じはあります :-)
wp-config.php の範囲だけで、いけるんじゃないの、と思って、リファレンスを読んでみました。
ということなので、
という辺りを変更すると、希望していることができるのではないかと思います。
アップロードしたファイルの扱いは、ちょっと考えてあげる必要があると思います。。
テーマやプラグインは別々に設定するということですから、wp-content ディレクトリは、違うものを設定することになると思うのですが、この配下にアップロードファイルも配置されるようです。
のふたつは、同じところを指すようにしておいた方が良いのかな、という気がします。
というわけで、以下のような手順で構築することになるんじゃないかと思います(多分)。
これで、ひとつめのデータを、ふたつめの WordPress で参照できていると思います。
後は、ふたつめの WordPress から記事を投稿して、ひとつめの WordPress で投稿記事が参照できることなどを確認して、お疲れさん、という感じじゃないでしょうか。
# アップロードファイルの扱いについては、省略してます
ちょっと気になるのは、ふたつめの WordPress の管理画面が使い物にならないのではないか、ということです。
勘がささやいているだけで、何の根拠もないのですが (^^;
# 同じ記事が複数のページで表示されていて、SEO 的にどうなん? とかいう話は想定内だと思いますので、特に言及しません