WordPress

2017版Adsense managerのエラー対処方法!原因と対策!class-admin.phpやclass-generic.phpにFatal error!?

更新日:

 

こんにちは。

 

猫の下僕です。

 

追記:最近新しいバグが発生しています。

登録時に画面が真っ白になる方への

解決方法を別記事に記載しましたので、

参考にしてみてください。

 

関連:Import押したら画面真っ白!の対策

 

 

ワードプレスを利用されているかたで、

googleから収益を頂いている場合、

Adsense managerを利用されますよね。

 

最近、新しく始めた方に教えていた際、

ワードプレスでエラーが発生しましたので、

お困りの方は多いだろうと思い、情報を

共有させていただくことにしました。

 

スポンサーリンク

 

関連:AdUnitsで名前が登録できない!?の対策

 

どんな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の管理画面で説明します。

 

他社のサーバーの方は、適宜読み替えて

ください。

 

また、わからない場合は私に連絡して

くだされば、個別で回答させていただきます。

 

この記事のコメント欄、または

 

コチラからでもOKです!

 

 

管理画面のココ!

 

まず、左側のパネルから、

サーバー設定の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等での

相談が必要な方は、以下からどうぞ!

 

無料で相談に乗ります!

 

お問い合わせ先

 

 

 

 

-WordPress

Copyright© ねこねこにゅーす , 2024 All Rights Reserved Powered by STINGER.