ウィジェットに広告コードが貼れない&ビジュアルエディタで広告コードが消える問題

いつもシェアありがとうございます。シェアボタンはこちらです。

私はプログラミング初心者なので、ブログ運営をしていて結構あちこちで躓いています。

その中でも特に厄介な以下2つについて解決策をまとめておきたいと思います。もし同じ症状に悩んでいる人がいたら参考にしてください。

  • ウィジェットに広告コード(広告に限らずあらゆるコード)貼れない問題
  • 記事のビジュアルエディタでtwitter引用や広告コード(つまりscriptやdiv)が消える問題

前者については発生条件があるようで、私のように「Simplicity」をテーマに使ってて、かつサーバが「ロリポップ(orさくらインターネット)」だと発生するようです。

スポンサーリンク

問題の状況をもうちょい分かりやすく

単語が合っているか不安なので、もうちょっと発生事象について説明させてください。こんな感じ↓になりません?

広告コードに限らず、ウィジェットにスクリプトが貼り付けられない問題。

  • 個別に広告貼ったりしたいなと思う
  • 広告コードやスクリプト(div~みたいな)をウィジェットのテキストに書く
  • 保存ボタン押しても延々と保存中でグルグル回っているだけで、いつまでも完了しない→貼り付けたコードが間違いではないかと何度も取り直し
  • 全く解消されない

あるいは、同じく広告コードに限らず、記事編集で「ビジュアルエディタ」にするとスクリプトコードが消える問題。広告に限らずTwitterの埋め込みも無効化されます。

  • 一回書いた記事を再編集したいなと思う
  • その記事にTwitter埋め込みがあって、div~というコードが書かれていた
  • ビジュアルエディタで更新するとなぜか先頭のdiv文字が消えている→そのまま再更新すると消えなかった部分のコードが文字列として記事中に出てしまう
  • 仕方ないのでテキストエディタでチマチマ更新する(テキストだとなぜか消えない)

こんな感じの事象でした。困ったものです。

じゃあ解決法メモ。

ウィジェットに広告コードが貼れない問題の解決方法:一時的にWAFを切る

結論から言うと、Webアプリケーションファイアウォール=WAFの設定が問題らしい。これはロリポップ等のサーバ側での設定なので、無効化すればOKです。こんなふうに。

ホーム画面のWEBツール→WAF設定を選択

ドメイン名隠しちゃってますけど、この右にある設定変更で無効にすればOKです。

設定変更してから10分くらい経つと無効になるので、もう一度ウィジェットにコードを書いてみましょう。出来るようになっているはず。

で、更新終わったらすぐに有効設定に戻す必要があります。WAFというのは以下のような役割があるからです。

WAFってなに

WAFはWebアプリケーション・ファイアウォールのことで、本来は外部からの攻撃を防いでくれる機能です。

なんですが、これが外部から取り込むスクリプトも自分を攻撃していると認識してしまい、遮断してしまっているみたいなんですね。

WAF設定で無効化したままだと外部からサーバを乗っ取られてしまう危険性がありますので、常に有効化しましょう。

ちなみに、WAFを使っているサーバはロリポップ、さくらインターネットなど一部レンタルサーバーに限られています。おそらくですがXサーバーなどではこの事象は発生しないはずです。

他の方法について

でも毎回これやるのは面倒だなと思って、もう少し調べました。一応方法はあるようですが、なんか難しそう。

  • WAFログから自分のIPを探し、「検出されたシグネチャ」をコピー
  • ホワイトリスト管理の「.htaccess」に該当シグネチャを書き込む(間違えると大変だからバックアップとって)

うーん、あまり弄るところではないので、とりあえずいっか……。SiteGuardというプラグインを入れて対処する方法もあるので、時間がある時に入れてみます。

ビジュアルモードで広告コードが消える問題の解決方法:

TinyMCEを導入していれば、設定から「段落タグの保持(Stop removing……)」にチェックを入れます。

これでbrやpタグ消去がされなくなり、問題が解消されるはず。

まれにおかしな挙動をするとありますので、その時は戻しましょう。

発生メカニズム

これは「wpautop」という関数が問題で、改行コードをbr、インラインタグをpタグに変えるなどの自動変換機能を持っています。

このため、ビジュアルエディタとテキストエディタの切り替えタイミングで一部スクリプトが消えて表示出来なくなってしまうというものだそうで。

普段は便利なのかもしれませんが、スクリプト(HTML)を書き込む場合に消えてしまうので困りものです。


備忘録としてまとめました。

▲TOP

▲TOP