こんにちは。
猫の下僕です。
追記:最近新しいバグが発生しています。
登録時に画面が真っ白になる方への
解決方法を別記事に記載しましたので、
参考にしてみてください。
ワードプレスを利用されているかたで、
googleから収益を頂いている場合、
Adsense managerを利用されますよね。
最近、新しく始めた方に教えていた際、
ワードプレスでエラーが発生しましたので、
お困りの方は多いだろうと思い、情報を
共有させていただくことにしました。
目次
どんなerrorか?
まずは、実際のerrorを確認してみましょう。
このページに来ている方は、AdUnitに問題を
抱えている方だと思います。
同じ事象かを確認してみてください。
googleからいただいたadsenseコードの
短縮タグを作成してくれるAdSense Manager。
非常に便利なプラグインなので、なんとしても
解決しましょう!
AdUnitにコードを入れて登録するとエラー!!
投稿→Ad Unitsと進むと、この画面が出ますよね。
このとき、画像のような警告が発生しました。
Warning メッセージは、
Warning: uksort() expects parameter 2 to be a valid callback, non-static method adsensem_admin::sort_ad_step() should not be called statically in /home/*****/*****.xyz/public_html/wp-content/plugins/adsense-manager/class-admin.php on line 235
こんな感じです。
コールバック関数が正しく設定できて
いないように読めます。
※正確には違うかもしれません。
ただ、内部がどうおかしくなっているかは
我々使う側が完璧に把握する必要がない
ので、詳細は割愛します。
Warningを気にせずimportすると
本来はこの画面に行くはずですが、
この画面へ行かず、文字びっしりの
error画面へと飛んでしまいます。
しかも、「Fatal error」なんて見慣れない
言葉まで表示されます。
※Fatal=致命的な、という意味です。
この画面の先に進めないため、修正が
必要です。
なお、エラーメッセージは以下のようになります。
Fatal error: Uncaught Error: Call to undefined function split() in /home/*****/*****.xyz/public_html/wp-content/plugins/adsense-manager/class-generic.php:177 Stack trace: #0 /home/*****/*****.xyz/public_html/wp-content/plugins/adsense-manager/class-code.php(51): Ad_Generic->save_settings() #1 /home/*****/*****.xyz/public_html/wp-content/plugins/adsense-manager/class-admin.php(271): Ad_Code->import_settings('') #2 /home/*****/*****.xyz/public_html/wp-content/plugins/adsense-manager/class-admin.php(387): adsensem_admin::import_ad('') #3 /home/*****/*****.xyz/public_html/wp-includes/class-wp-hook.php(298): adsensem_admin::admin_manage('') #4 /home/*****/*****.xyz/public_html/wp-includes/class-wp-hook.php(323): WP_Hook->apply_filters('', Array) #5 /home/*****/*****.xyz/public_html/wp-includes/plugin.php(453): WP_Hook->do_action(Array) #6 /home/*****/*****.xyz/public_html/wp-admin/admin.php(222): do_action('posts_page_adse...') #7 /home/*****/*****.xyz/public_html/wp-admin/edit.php(10): require_once('/home/li in /home/*****/*****.xyz/public_html/wp-content/plugins/adsense-manager/class-generic.php on line 177
ちなみに、私のサーバーではないため、
アドレスを「*****」で隠しています。
解決策はコレ!
事象説明が長くなってしまいすいません。
解決方法はズバリ
「PHPのバージョンを下げる」
です。
では、詳しく操作方法を説明させていただきます。
wpxでの対処方法
PHPのバージョンは、サーバー側で設定
されています。
そのため、wordpress管理画面では
変更できません。
サーバー側の管理画面から変更します。
wordpress専用を謳っているwpxが人気
ですので、wpxの管理画面で説明します。
他社のサーバーの方は、適宜読み替えて
ください。
また、わからない場合は私に連絡して
くだされば、個別で回答させていただきます。
この記事のコメント欄、または
管理画面のココ!
まず、左側のパネルから、
サーバー設定のPHPバージョン切替を
クリックします。
※最初はメインパネル(中央)の表示が違うかと
思います。
気にせず、左パネルの青く囲われた場所を
クリックしてください。
次のような画面になるはずです。
変更後のバージョンの、PHP7.0.7をクリックすると
変更できるバージョンの一覧が出ます。
PHP5.6.22をクリックします。
そして、設定変更(確認)をクリック。
すると、この画面になります。
変更後のバージョンが5.6になっている
ことを確認し、設定変更(確定)をクリック。
『PHP5.6』に切り替えました。と表示されたら成功です。
この状態で、wordpressの管理画面から
Ad Unitsを選択してみてください。
無事に設定できるようになっているはずです。
原因は?
ということで、今回は最新のPHP7.0.7に
AdSense Managerが対応できていない
ことが原因でした。
最近バージョンがあがったようで
新規で契約した方は最初から最新の
PHP7.0.7となっているため、このように
問題が発生していました。
AdSense Managerの製作者さんがすぐに
対応してくれると思いますが、とりあえずは
PHPのバージョンを下げることで対処
しておきましょう。
直らなかった場合
同様の事象であれば、今回の方法で
直るはずですが、ダメだった場合は
プラグインのバッティングが考えられます。
相性の悪いプラグインがある場合
どちらか一方を止める必要があります。
プラグインのバッティングを見極める
方法は、後日作成予定です。
考えたくない!誰かやって!!
ITに不慣れな方は、パニックになって
しまいませんか?
焦りますよね。
英語が多いですし、考える気力を削がれ
ますよね。
こちらのコメント欄などから私に連絡を
ください。
無料で相談に乗りますよ!
より詳しく、メールやskype等での
相談が必要な方は、以下からどうぞ!
無料で相談に乗ります!