BLOG
WP移転でハマった話
2019/09/01 [Sun] WEB前回に続きWEBネタです。というかこれを書くための前置きとして前の記事を書きました。
ダラダラ書いていますが、どなたかの参考になれば…
前述の通り、WEBの仕事を再開するためにいろいろと準備中なのですが、Wordpressのテンプレートを複数作っておくためにマルチサイト機能を使って管理しています。
マルチサイト化の手順や仕様については多くのサイトで書かれているので、ここでは割愛します。
マルチサイトのコンテンツを移転
さて、いざマルチサイトでテストしたテンプレートを、マルチでないWordpressに移転するのに少し手間取りました。
通常、Wordpress同士であればプラグインを使ったりしてDBも含め割と簡単に移転ができます。
が、マルチサイト→そうでないサイト、となると、DBの仕様が一致せず、なんかいろいろおかしくなってしまいました。
仕方ないのでphpMyAdminで地道にDBの中身をのぞきながらテーブルをコツコツとコピー。
今思えば、コピー先でマルチサイトの設定情報などが格納された「wp_blogs」なんかを削除して「wp_option」の情報を書き換えれば早かったのでは?などと思ったりもしますが、正直DBのことはイマイチよう分かっとりません…
メディアライブラリの画像が表示されない
これはマルチサイトでなくとも起こるので想定内。
テーマディレクトリのひとつ上の階層にある「uploads」ディレクトリに移転元の画像をコピーし、プラグイン「Regenerate Thumbnails」を使ってサムネイルを再読み込みさせます。
ちなみにマルチサイト化していると「uploads」フォルダ内で「01」「02」…とサイトごとにディレクトリが分かれているので、移転する該当のサイトを探してその中身だけをコピーします。
これで問題なく移転できたはず…と思いきや、なぜかオリジナルサイズの画像が読み込まれておらず、やたらと画質が悪い…
投稿内の画像を手動でオリジナルサイズに置き換えても、勝手に「中」サイズに戻ってしまいます。何でや‼︎
冷静に考えると、投稿内の画像が勝手に小さくなるということは、テーマの方に問題あり。確認すると案の定「the_post_thumbnail( ‘medium’ );」になっていたので修正。
…しかし直らない。何故‼︎
その後いろいろ検証のために一生懸命修正していたのが移転元のサイトだったということに気付くまで数十分無駄にしてしまいました…(苦笑)
それにしても、元のサイトでサムネイルをそんな設定にした覚えはなかったのですが、こういう凡ミス検証している折にでも無意識に書き換えてしまったのでしょう。
今度は一部コンテンツが表示されない
サムネイル問題はやっと解決して、概ね移転が完了したと思いきや、ところどころ画像やブロックが表示されていません。
画像のリンク先は合っていてソースから辿ると正しく読み込まれている…
何でや‼︎‼︎
Javascriptの記述がおかしいのだろうか、といろいろ修正するも、うんともすんとも言わない。
ここでも、トップページの写真が表示されない点にばかり注目して大事なポイントを見落としていたのですが、ちょっと別ページを見てみれば、そもそもJavascriptが読み込まれていなかったことにすぐ気付きました。こんなことでまた数十分無駄にしてしまった…
そもそもの落とし穴として、マルチサイトで「get_template_directory_uri();」を使用すると正しくテーマディレクトリが取得できないのです。
本来
●●●.com/wp-content/themes/となるべきところが、マルチサイトだと
●●●.com/マルチサイトのサブディレクトリ/wp-content/themes/
となってしまい、本来取得されるべき
●●●.com/wp-content/themes/マルチサイトのテーマディレクトリ
になりません。
そのためnetwork_home_url(); を使ってルートディレクトリから本来のテーマディレクトリまで記述していたわけですが、これをマルチサイトでないサイトにそのままコピーすれば当然テーマディレクトリが見付からないわけで。
移転した時点でCSSは表示が崩れるのですぐに気付くのですが、一部のJavascriptを少し離れたところに書いてあったので完全に見落としていました…
マルチサイトの移転はそんなに大変でなかった
気付いてしまえば大したこともない凡ミスですが、頭から「マルチサイトからの移転!トラブル多し!」というのが刷り込まれていたので、基本的なところでミスっているという点が抜け落ちていました。
つまり結果的に、マルチサイトからの移転は、通常の移転と比べてもさほど大変ではありませんでした。
今後この形態で業務運営を続けながら、マルチサイトの使い勝手も検証していきたいと思います。