WordPressのビジュアルエディタが表示されない原因が判明

約1年半ほど前から運営しているサイトがペナルティを受けているのでは?と感じだしたのが今から半年前。

特に何をするというわけでもなくしばらく放置してました。

ペナルティといっても手動ではないのであくまでも推測の域を脱しないのですが
あまりにも検索順位が上がってこないということでドメインを乗せ替えることにしたんですね。

最近、サーバーを変更したりでWordPressで作成したサイトをガサッと引越しすることが
ちょこちょことあったのですが、とても便利なプラグインがあるんです。

「Duplicator」

データベースの中身からプラグインの設定、使用していないテンプレートまで
ごっそりと移動できてしまうプラグインです。

サイトのバックアップとしても重宝するんじゃないでしょうか。
またどこかのタイミングで紹介しようと思っています。

話が逸れたので元に戻します。

運営していたサイトのドメイン乗せ替えをしたんですけども
このサイトがあまりにも魔改造しすぎて大変なことになっていました。

「WordPressのアップデートができていない…」

なぜこんなことになったかというと

メールアドレスを登録しないと口コミが投稿できないシステムを
WordPressのコアファイルをイジりまくって強引に設置していたんです。

改造した本人ですらどこをどう触ったのかわからなくなるくらい
コアファイルを触ってしまい…

こういうこともあってWordPressの3.9あたりから全く更新をしておらず
非常にマズい状態になったままにしてました。

「せっかくドメイン乗せ替えるし、このタイミングで正常な状態?に戻すか!」

と一念発起をして魔改造したサイトに勝負を挑みました。

「メールアドレスの登録」の機能は捨てて誰でも口コミが投稿できる形にしたら
それほど時間もかかることなく正常な状態に戻すことができました。

ちなみに「口コミ」の機能はこのブログで紹介したプラグインを使用しています。
『WordPressに口コミ機能を付けるプラグインと日本語化』

無事にWordPressも最新版へ更新でき、口コミの機能もその他の機能も
問題なく動いているので久しぶりに記事を更新しようとしたところ…

「文字が入力できないんですけど…」

ちなみにこのような状態になっていました
2015-05-28_01h29_44

通常ならば「ビジュアル」「テキスト」のタブをクリックすれば切り替えが
できるのですが全く反応せず…

以前はビジュアルエディタを拡張するために「CKEditor for WordPress」を
入れていたのですが「Page Builder by SiteOrigin」との相性が悪いということもあり
ドメイン乗せ替えのタイミングで「TinyMCE Advanced」に変更しました。

これが原因かと思い「CKEditor for WordPress」に戻そうかと思ったのですが
「Page Builder by SiteOrigin」を使う頻度を考えると戻すという選択肢はなくなりました。

で、試しに「CKEditor for WordPress」に戻すと文字入力ができるんですねぇ…

ビジュアルエディタのツールバーが表示されない原因ってなんやねんと
探っていたところ、見つけましたよ。

2015-05-28_12h50_19

エラー出まくってます…

「発見、発見」と思って「Uncaught SyntaxError: Unexpected token ILLEGAL」
いうエラーの原因になっているファイルを確認したのですが該当箇所を見つけることができず…

何が原因かわからないままWordPressの再更新導入しているプラグインの停止
他のサイトで同様の現象が解決されたことが書かれていたのでそのように対処しても
ピクリとも反応せずお手上げ状態。

「Uncaught SyntaxError: Unexpected token ILLEGAL」というエラーのおかげで
「tinyMCEPreInit」が機能してないということまでは分かってはいたんですけど…

ただWordPressのコアファイルに「tinyMCEPreInit」を定義するコードを
見つけることができなかったんです。

WordPressには膨大なファイル数があるので1つずつ確認するなんてことは
できないので、わたしが愛用しているSublime Text3の検索機能を使って
「wp-admin」「wp-includes」のフォルダ内にあるファイルから「tinyMCEPreInit」の
文字列があるものを検索してみました。

すると何件かヒットしたのでホッとしたのですが…

結局解決には至らず諦めかけたんです。
で、最後に「テーマファイル」を検索してみたら

ビンゴでした…

テーマファイル内のfunctions.phpに「tinyMCEPreInit」を再定義?する
コードが書かれてあったんです。

「なんでfunctions.phpに??」

となりながらも確認してみると、昔に自分が書いたコードが原因だったことが判明。

テキストエディタからビジュアルエディタに切り替えた時に
「iframe」が消えないようにするためのコードをどこかの
サイトからコピーして貼り付けたんでしょうね…

その時に余計な改行やスペースを入れてしまっていたために
「Uncaught SyntaxError: Unexpected token ILLEGAL」というエラーが出ていたという
なんともお粗末な話でした…

コードを整形したら無事にビジュアルエディタが復活!

2015-05-28_12h51_10

2日ほど悩みました…

とても無駄な時間を過ごした気がするのですが、こうやって
ネタにできたことで昔の自分に対しての溜飲を下げようと思っています。

わたしの場合はこんなアホみたいな解決方法だったのですが
ここに至るまでに下記のサイトを参考にいろいろと対策をしました。

『図解WordPress』
『ノマドWEB』

おそらく通常のケースですと、上記サイトで書かれている方法で
解決できるのではと思います。

それにしてもこれでやっと一段落しました。

めでたしめでたし。

WordPress

Posted by yusuke