2017-03-28 6 views
1

概要:私たちは、非常に長い(7歳以上の)WordPressのマルチサイトインストールをサブドメインからサブディレクトリに変換しようとしています。 wp-config.php.htaccessを変更するのは順調です。しかし、これらのインストールの中には1000以上のサイトがあり、データベース全体に散在するものは、abc.multisite.comという膨大な数のインスタンスを持つことができます。大規模データベース置換方法

私はそれが123multisite.com/abcにつながる123abc.multisite.comに影響を与えることなく、当然のことながら、multisite.com/abcabc.multisite.comの変換を自動化するための最良の方法を見つけようとしています。

私が見たすべてのfind/replaceプラグインは、一度に1回だけ検索できます。置き換えるために何千ものレコードがあります。

これについてはどうすればよいでしょうか?何百ものDBテーブルを掘り下げるためにPHPでループできるSQLコマンドがありますか?

get_sites()機能を使用してサイトのリストを取得し、それをループすることができます。

または(これらのDBの一部の大きさは原子/崇高/ブラケットをクラッシュしていましたが置き換え/データベースをエクスポートし、見つけるための優れたツールがあります。

答えて

1

あなたはWP CLIへ(SSH)アクセス権を持っている場合は、あなたのサイトのルートでこれを実行できます。

wp search-replace abc.multisite.com multisite.com/abc 

マルチサイトについて、あなたはすべてのテーブルで検索する場合は、あなたが--networkフラグが必要になります

http://wp-cli.org/commands/search-replace/

デフォルトでは、コマンドは$ wpdbオブジェクトに登録されたテーブルを使用します。 マルチサイトでは、 --networkが指定されていない限り、現在のサイトのテーブルになります。検索/置換は、PHPのシリアルデータをインテリジェントに処理し、主キーの値は変更しません。

wp search-replace abc.multisite.com multisite.com/abc --network 
+0

ありがとうございました!私はWP-CLIが存在することを知らなかった。私はそれの一般的な考えを得て、それは主に働いているようです(まだサイトのURLを置き換えるときにいくつかの問題があります) 私はまだ私の特定の状況のた​​めのニュアンスを把握する必要がありますが、これは動作すると思う私が必要とするもののために完全に - ありがとう! 注: 'wp --info'には私のための出力がありませんでした。Suhosinは' wp-cli'に対して例外を作成する必要があり、今は夢のように動作しています。再度、感謝します! – Xhynk

関連する問題