
wordpressのアップデート後、画像の「投稿に挿入」ボタンが押せないという事象が発生した。
この間まで普通に投稿できてたじゃん…という話なのですが、納品前にこの事態は非常にまずい。
ただ、具体的にいつからこの事象が起きたのか…というのは、正確に把握できていませんでした。納品前の最終チェックや修正に追われていて、画像挿入については、初期の制作段階で終了していたから。
こんなときは原因の切り分けをするしかない!ということで、切り分けの経緯を書き残しておきます。
おそらく同じような原因で悩んでいる人も多いと思うから。
ネットを見てると、ちゃんと手順に沿って、チェックしていくとその過程のどこかでうまくいった人が多いみたいです。
現象の把握
何ができて何ができないのか。まずはその把握をするところから。
これをせずにむやみに対応すると問題がない箇所まで問題がでる原因になるので、現状把握は必須。今回の事象は、下記の通り。
1.投稿・カスタム投稿ともに記事編集画面からの画像挿入時の「投稿に挿入」ボタンが押せない。
2.メディアからの画像アップロードはOK
3.カスタムフィールドの画像アップロードはできるが、メディアピッカーを使って挿入しようとすると、「これを使用する」をクリックしても無反応。
4.一度画像の編集画面を表示してからだと「投稿に挿入」ボタンが押せるようになる。
javascriptは無効にしていないし、キャッシュ等クリアにしても動作変わらず。
なぜだ!?
切り分けその1-wordpress本体のアップデート
wordrepssのアップデートがうまくできていないのかと思ったので、再度アップデート。
事象変わらず。
念のため、最新バージョンがないかと確認したが、その時点での最新バージョンに間違いなし。
特にエラー等なし。
切り分けその2-プラグインのアップデート、無効化
プラグインのアップデートを確認。
事象変わらないため、すべてのプラグインを無効化して、試すが変わらず。
切り分けその3-テーマをデフォルトテーマに切り替える
自作テーマやデフォルトテーマ以外のテーマを使用している場合に、テーマが原因でなることも多いらしい。
自作テーマを使ってはいるが、シンプルな構造にしているため、今回のチェックからは外す。
後で分かることですが、この時点でこれを試していると、もっと解決まで早かったです。
当てはまった人は、ページ下の番外編をチェックしてみてください。
切り分けその4-画像のアップロード先をチェック
画像のアップロード先フォルダを変更している場合は、元の設定に戻してOKな場合が多いらしいです。
これも変更してなかったので、問題なし。
切り分けその5-画像アップロード先フォルダのパーミッションチェック
直接の原因ではなかったのですが、このフォルダだけ所有者が48になっていたので、変更。
所有者が変わるとエラーの元なので。
念のため、パーミッションも変更。
切り分けその6-ブラウザのjavascriptのチェック
ブラウザでjavascriptを無効にしていないか。
無効になっている場合は、有効にするとOK。
稀らしいけれど、テーマ内のjavascript(jQuey含む)と干渉していることがあるらしいので、全部削除して試してみる。
番外編-今回の解決方法
今回の原因は、自作テーマの「functions.php」でした。
アップデート後に、コードの指定が変わったのか、今まで効いていたコードの一部が効かなくなっていました。
functions.phpを修正してもエラーが出なかったので、気づいていなかった部分だったのですが、画像処理に関するコードを一つずつチェックすると、そのうちの1つが原因でした。
削除しただけで、通常通りの処理ができるようになりました。
ネットで見つけたその他の方法
ネットで見つけたその他の方法もせっかくなので、記録を残しておきます。
ちなみに検証しているわけではないのですが、藁をもすがる…という思いの人は、試す価値ありかも。
1.wordpressとサーバーの相性が悪い。(サーバーに自動インストール機能がついている場合は、サーバーに問い合わせてみる価値あり)
2.wordpressのバグだった場合、新しいバージョンが出るまで、ダウングレードする。
3.プラグインのバグだった場合、別のプラグインにするか、無効にする。
4.コアファイルを修正する。
5.容量の小さい画像ファイルで試す。(ファイル容量が大きいだけかも)
6.php.iniのセーフモードがonになっている。(offにしてみる)
バグとか仕様変更は起こるものと思っていますが、やはり直面すると、正直かなり動揺します。
うわぁ~、なんかやってしもうたか!?…と。
そんなときは動揺してても仕方がないので、深呼吸して、お茶を一杯飲んでから、取りかかりましょう!
あと、難しいことから始めずにすぐにチェックできるものや影響が出にくいものからスタートするとよいと思います。