WEB

WordPress マルチサイトでデータ共有

マルチサイトからの続きです。

最初は、ヘッダーだけ書き換えれば行けると踏んだのですが、

内部のURLにすべてフルパス(ドメイン付き)が使われており、
トップページ以外のエイリアス側のサイトでは、
親ページに移動してしまいます。

ということで、マルチサイトを使うことになったのですが、
商品データの共有をしなければ成らず、

最初から、この方法は思いついていだが、
あっけなさ過ぎるので、
別の方法を探ってみたところ、

[php]
function my_share_posts() {
if ( preg_match( "/\/category\/|\/archives\/\d+$/", $_SERVER[‘REQUEST_URI’] ) ) {
global $wpdb;
$wpdb = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST );
$wpdb -> set_prefix( ‘hoge’ ); // hogeはshop1サイトのテーブル接頭辞
}
}
add_action( ‘send_headers’, ‘my_share_posts’ );
[/php]

※ヘッダー情報が読み込まれた後、?prefix(接頭語)を書き換える。

コードなんですが、うまくいきません。
$wpdbを、print_rでダンプしたところ、うまく書き換わっておらず、

[php]
$wpdb -> prefix = ‘wp_’;
$wpdb -> posts = ‘wp_posts’;
//$wpdb -> options = ‘wp_options’;
$wpdb -> postmeta = ‘wp_postmeta’;
$wpdb -> comments = ‘wp_comments’;
$wpdb -> commentmeta = ‘wp_commentmeta’;
$wpdb -> terms = ‘wp_terms’;
$wpdb -> term_taxonomy = ‘wp_term_taxonomy’;
$wpdb -> term_relationships = ‘wp_term_relationships’;
$wpdb -> links = ‘wp_links’;
[/php]

と、使用テーマ下の「function.php」に、直書き。
※wp_optionsは、マルチサイト毎のデータ(サイト名とか)を使うので、コメントアウト。

さて、ここからがはまりどころ。
Welcartを使わないなら、ここまでの設定で、データ共有出来ているはず。

が、
Welcartが呼び出される前に、$wpdbがリセットされているので、
呼び出し箇所をさがしたが、

試行錯誤している間に、この先行き止まりだと気づいたので、

リレミト・・・
※脱出の呪文@ドラゴンクエスト

(さらに…)

-

サブディレクトリにインストールしたWPを直下に移動(WordPress マルチサイト化)

2015-09-08追記

通常であれば、設定 > 一般より、

とし、ルートに、index.htmlをおいてやればよい。

これでは、うまく動かなかった様子^^;

 

以下は、2013年2月の情報。


客様のサイト構築中。
ヘッダー違いで、中身が同じサイトになるので、

とりあえず、マルチサイト化したんだが、

結果、
商品などのデータも、別々になってしまい、
試行錯誤しているところ。

運用ドメインは違うけど、ディレクトリは一緒 = ドメインエリアス

に習い、

  1. ?ネットワークの有効化作業
  2. プラグインのインストール/設定

を行うが、2 で、トラブル発生!

(引用)
WordPressの設定による制約
「WordPressファイルを専用ディレクトリに配置する設定」をしている場合、ネットワーク機能が正常に動作しません。

ルート直下に配置したWPじゃないと、プラグイン動かないようなので、
ルートに移動を試みる。

index.phpを、ルート直下にコピーし、
require(‘./_wp/wp-blog-header.php’);
と、書き換え。
結果、
http://shoroji.com/ にアクセスしても、
http://shoroji.com/_wp/ の内容が表示される。


かし、この応急処置では、プラグインは動きません。(たしか)

 

ルート直下から、サブディレクトリに移動する方法はあるものの、
その逆は、いくら探しても、
これ以外の方法が見つかりませんでした。

ルート直下から、サブディレクトリに移動する方法の逆をためしても、ダメ。
手順は、
  1. 管理 > 設定 > 一般 > サイトアドレス 以下のように書き換え、
    http://shoroji.com/_wp/?>?http://shoroji.com/
  2. FTPで、全ファイル移動。

マルチサイトにしているせいか、
「データベースに接続出来ません」 のエラーで、

phpMyAdminで、wp_options、wp_sitemeta など、
サブディレクトリの記述が残っている箇所は、書き換えたが、復旧せず。

 

さて・・・
そろそろ・・・
仕方ありません。最終兵器の登場です・・・
これだけは、使いたくなかった・・・

ルートにWPをインストール!!

DBは、前のままのを使う設定で、
移行することができました。

wp-config.phpの内容も同じ。
何が悪いのか、さっぱりわからずだが、
移動、完了・・・

PS.
作業前に、バックアップはお取りください。
執筆時のWPのバージョン > 3.5.1

*** 祝 ***

shoroji.comを、LinkClubに移管したところ、気づいたのですが、
Creation-Date:2001-08-15T05:56:27+09:00
いつの間にか、10年以上運用していました。

-