開発

WordPressでプラグインの設定が保存できなくなったり、ウィジェットにAdSenseのコードが保存できなくなった時の対処法

更新日:

ブログに表示していた広告をずっと放置したままだったので見直してみることにしました。

Google AdSenseの自動広告はちょっと邪魔だと思うものばかりだったので基本的にオフ。唯一使えそうな記事内広告も本文中の意図しないところに出てしまうので使わずにプラグインを入れていました。

「AdSense Integration WP QUADS」というプラグインを使用してたのですが、設定を変更して「変更を保存」ボタンを押してもエラーが出てしまい保存されません。

仕方ないので今度はウィジェットを使って広告を出すことに。外観→ウィジェットから「カスタムHTML」にAdSenseにコードを貼り付けて保存しようとしたところ、今度はいつまで経っても保存のアイコンがグルグルと回り続けてしまいます。

調べてみるとこれらの現象はすべて同じことが原因となって発生していました。

WordPressプラグイン「Easy Table of Contents」を使っている場合に目次の下にGoogle AdSenseを表示させる方法

レンタルサーバーの設定

WordPressがこのような状態になっているのはレンタルサーバーがロリポップ!の場合に発生していることが判明。

設定を変更することで一時的に回避できます。

ユーザー専用ページにログインし、セキュリティ→WAF設定を開きます。

セキュリティ→WAF設定

「無効にする」ボタンを押してしばらく経つとWordPressからプラグインの設定やウィジェットが保存できるようになります。
※設定変更後、反映に5~10分ほど時間を要するとのこと

WAF設定

WAFとは?

ロリポップ!のサイト上には下記のような記載があり、『有効』状態を推奨しているそうです。

WAF(ウェブアプリケーションファイアウォール)により、ウェブアプリケーションのやり取りにおける不正侵入を防ぐことができます。サイト改ざん対策の一つとしても有効です。

AdSenseのコードに含まれているscriptやプラグイン「AdSense Integration WP QUADS」の設定保存がWAFによって弾かれてしまったようです。

WordPressの設定が終わったらWAFを元に戻しておきましょう。

WAFを無効にしない方法

WordPressの設定を変更する度にロリポップ!のユーザー専用ページにログインしてWAFを無効にしなければならないのはちょっと面倒です。

そこでWordPressのプラグインを使うと、WAFの除外ルールを作成することができます。

プラグイン→新規追加から「SiteGuard WP Plugin」を検索してインストールしてください。

デフォルトでインストールされている場合もあるので先に「インストール済みプラグイン」を確認してみた方がいいかもしれません。

既にインストールされていた場合は有効にするだけでOKです。すると左のサイドバーに「SiteGuard」のメニューが表示されるのでクリックしてダッシュボードを表示します。

ダッシュボード内の「WAFチューニングサポート」をクリックします。最初はチェックマークが外れています。

WAFチューニングサポート

ここで先ほどのロリポップ!のWAF設定を表示し、「ログ参照」を押してください。

ログ参照

すると下記のような「WAF検知ログ」が出るのでシグネチャをコピーしておきます。

WAF検知ログ

再びWordPressの「WAFチューニングサポート」に戻り、「新しいルールを追加」を押してコピーしたシグネチャと後から見た時に分かるようにコメントを入れて「保存」ボタンを押してください。2つあるので2回おこないます。

WAF除外ルール 追加

今回設定した項目は下記のようになります。コピペしても構いませんが、環境によってシグネチャが異なる場合があるので、念のためログを確認してからおこなってください。コメントは自由です。

シグネチャ コメント
wordpress-wpconfig プラグインの設定を保存
xss-tag-1 AdSenseコードをウィジェットに追加

ONにして「ルールを適用」ボタンを押せば毎回ロリポップ!のユーザー専用ページにログインしなくても済むようになります。

ルールを適用

※この設定が保存できない場合はロリポップ!のWAF設定を無効にしてからおこなってください。

-開発
-,

Copyright© Workerブログ|仕事を続けるための工夫 , 2020 All Rights Reserved Powered by STINGER.