WordPressをローカル環境からサーバー環境に移す際に WordPressでライブビューの表示ができなくなるという現象が発生しました。
インターネットで調べてみてもプラグインが悪いという話は出るのですが、僕はそのプラグインは使っていません。
散々調べた中で、WordPressのデバッグモードでライブプレビューの画面のエラーを確認したことにより問題が解決されましたなど、今回はその話をしたいと思います。
ローカルからサーバーへ移行したらなんか変
先日MacBookProの中で運用していたWordPressをサーバーに移行したのですが、その時に変なことが起こってしまいました。
外観→カスタマイズでサイトの全体の色などを変更しようかと思い、クリックしたのですが、プレビュー画面が真っ白になってしまっていました。
本来であれば、サイトの全体画面が表示されるはずなんですが、それが出来ません。
原因として考えられることをネットを調べながら行ってみました。
プラグインが原因か?
Woo SidebarsやWP-Copyright-Protectionというプラグインをインストールしている場合に表示されないという話もあるみたいですが、僕はこのどちらのプラグインをインストールしていません。
https://woocommerce.com/products/wooslider/
https://ja.wordpress.org/plugins/wp-copyright-protection/
最近はできるだけプラグインを入れたくないという方針でブログを作るようにしています。
wp-config.phpの認証用ユニークキー
初めて知ったのですが、wp-config.phpにはCookieの中に格納されるユーザー情報の暗号化のための認証用のキーがあるそうです。詳しい話は下のリンクをクリックしてください。
http://wpdocs.osdn.jp/wp-config.php_の編集#.E8.AA.8D.E8.A8.BC.E7.94.A8.E3.83.A6.E3.83.8B.E3.83.BC.E3.82.AF.E3.82.AD.E3.83.BC
この認証用のキーはWordPressインストール時には設定されており、特にユーザー側で何かする訳ではないのですが、たまに違うサーバーに移し、URLを変更したりすると不具合を起こし、ライブプレビューを非表示にしてしまったりするそうです。
その可能性を示唆して、下のサイト使って再度認証キーを発行して、wp-config.phpを更新しました。
https://api.wordpress.org/secret-key/1.1/salt/
でも、問題であるライブプレビューはなおりませんでした。
WordPressアドレス(URL)とサイトアドレス(URL)とが異なる
この2つのアドレスですが、基本的にはどちらも同じアドレスが書かれていると思います。
- WordPressアドレスはWordPressフォルダが格納されている場所
- サイトアドレスはWordPressにアクセスするためのアドレス
基本的には2つは同じだと思うのですが、WordPressアドレスがドメイン直下にない場合は、WordPressアドレスがサイトアドレスと違うという場合があります。
ここを確認して、両方のアドレスが正しく記載されているかどうかを確認してください。僕はちなみに、間違ったアドレスが記載されていることはありませんでした。
わけわからんので、デバッグモード
もうインターネットを見ても、該当しそうな話がなかったのですが、あるサイトで、WordPressのデバッグモードがあり、エラー箇所について、どういった内容のエラーなのかをテキスト表示してくれるものがあったので、早速試してみました。
wp-config.phpの中をいじる
wp-config.phpの下の方に、コメントで「WordPressデバッグモード」という記述の場所があります。

そこにdefine('WP_DEBUG', false);という記述がありますが、そのfalseをtrueに変更することで、デバッグモードに変更されます。
外観→カスタマイズでエラーを見る
画面が真っ白になった箇所に移動して、エラーメッセージを確認します。

メッセージを見てもあまりわかりません。でも2つのファイルが関係しているということだけはなんとなくわかります。
まずは、class-wp-customize-control.phpというファイル。もう一つのファイルは、class-wp-customize-manager.phpというファイルです。この2つのファイルが何かしらの悪さをしているんですね。ということで、この2つのファイルを探してみることにしました。
class-wp-customize-control.phpが、、、
class-wp-customize-control.phpというファイルがWordPressのフォルダの中にありませんでした。なんででしょう。

仕方がないので、改めてWordPressのフォルダをダウンロードし、class-wp-customize-control.phpのファイルだけをFTPソフト経由でサーバーに格納しました。
結果はOK
結果ですが、ライブプレビューの機能が復活しました。やはり悪さをしていたというよりも、もともとclass-wp-customize-control.phpがなかったということでした。でも一体原因はなぜなのかという点についてはわかりません。
ファイルのコピペは気をつける
昔僕がまだSEの仕事をしていた時は、容量の大きなファイルをコピー・アンド・ペーストする時はGUIではなくて、CUIでしないとうまくコピー・アンド・ペーストできないということを先輩から注意されたことを思い出しました。
でも、今の時代GUIでコピー・アンド・ペーストしたことによってファイルが一部なくなってしまったりするようなことがあるのでしょうか。
無線LAN環境でFTPにペーストした際に、うまくファイルが移動しなかった可能性もあります。
今回の件はかなり特殊な要因なのかもしれませんね。
デバッグモードを知ることができた
今回のエラーとその原因について調べてみた結果、何が原因かわからなかったのですが、対処方法がわかり実行した結果、エラーはなくなりました。
原因がわからないことはちょっとと言うかかなり気持ち悪い話ではありますが、今回の件のお陰で、WordPressのデバッグモードを知りました。これでWordPress内で起こる不具合については、デバッグモードを使用することによりある程度の原因を見つけることができるようになりました。
こうした知識を得ながら、うまくWordPressを運用していこうと思います。
コメント