LINEで送る
Pocket

WordPressの投稿画面にある「ビジュアルモード」「テキストモード」の変換が表示されない事象があった。

業務用サーバだったこともあり、早急に修正する必要があったが、これが中々ハマった。

環境

このWordPressサーバの環境は以下の通り。

  • wordpress4.8.2
  • AmazonLinux
  • WEB: H2O
  • DB: MySQL5.7.19
  • PHP7
  • wordpress二台構成
  • CloudFront
  • ALB

色々試して失敗した一覧

まず先に試して確認してほしいと言われることは一通りやっていた。

  • ユーザ編集にてチェックボックスが入っていないか確認
  • プラグインの停止
  • wp-config.phpにdefine(‘CONCATENATE_SCRIPTS’, false );の追記
  • ブラウザの設定にてJavaScriptの許可がされている確認
  • 別のブラウザで見てみる(Chrome、Safari)
  • WordPress再インストール
  • Teratailで質問する

WEBでよくあるのはユーザ編集でチェックボックスが入っているパターンらしい。

どれもこれも、大抵ここまでやれば解決するらしかった。

CloudFrontの存在

なんとビジュアルモードはUser-agentを見てOn/Offを判断しているというではないか!

ソースを確認すると、たしかに。2997行目あたりにあった。

User-agentをCloudFrontにさせなければよい

ということでいくつか方法があった。

  • CloudFrontのBehaviorsにWhitelistを追加する
  • function.phpに直接記述する
  • プラグインを使う

私はWhitelistとphpに直接書く方法をとった。

CloudFrontのBehaviorsにWhitelistを追加する

「Filter headers〜」の部分に「User-agent」を入力し、「Add Custom >>」をクリックする。

その後、設定を保存すればOK

試しにtestディレクトリにuser-agent.phpを作成して確認してみる。

User-agentが取れた!

function.phpに直接記述する

WordPressからでもサーバからでも良いが、以下を追記する。

ぶっちゃけこれ書けばCloudFrontの設定いらないかも。

プラグインを使う

Enable Visual Mode in CloudFront

自作している人もいるのでこれに頼るのもアリか?

まとめ

最初は単純にパッケージの欠損とか、JSの問題とかを探っていたが見当違いだった。

解決の糸口をみつけた先輩に感謝!

参考

https://jyo-to.okinawa/20170520/1092/

https://qiita.com/kawax/items/5e6d8d2fbbc4cee5a24b

http://www.kumoyanet.com/1519/

Share on FacebookTweet about this on TwitterShare on Google+