AdSense アカウントでの広告配信の制限がかかった為、今後このようなことがないようにプラグイン「AdSense Invalid Click Protector (AICP)」を入れることにした。しかしこのプラグインは入れるだけでなく、functions.phpを変更する必要があり、それが大変で…。いろんなサイトを参考に行おうとするが、私には難しく何度断念しようか…と思ったことか…。😖
何度も壁にぶつかりながらも何とか設定が出来たので、それらの体験を書いてみることにする。
WordPressは始める時にテーマを選ぶのだが、テーマを決めたら自分で子テーマを作成してアップすることが基本?となっている。全然こだわりがない人はそのまま使用しても良いのだが、自分で選んだテーマをカスタマイズしたい人は子テーマを作成し、その子テーマをカスタマイズしてアップして使う。そうでないとテーマがアップデートされた時、せっかくカスタマイズした内容がリセットされてしまう為。
私も子テーマを作成して使っているので、そこに「functions.php」のファイルもあると思っていたがなかった。ずいぶん昔に子テーマを作成したので全然覚えてなかった。😅
WordPressの「ダッシュボード」 → 「 外観」 → 「テーマエディター」と選んでいくと、そちらに子テーマが見える。
私はテーマ「 Iconic One」を使って子テーマを作っている。なので「この子テーマは親テーマ Iconic Oneのテンプレートを引き続きます。」となっている。私が作成した子テーマの中に「functions.php」はなかったので親テーマのIconic Oneの「functions.php」が使われている状況だった。
この状況だと親テーマの「functions.php」を変更することになる。しかしカスタマイズするのは子テーマの方が良いはずなので、子テーマに「functions.php」を作ることにした。
今回は念のために新しい子テーマ「iconic One_child2」を作成しそちらにfunctions.phpのファイルも入れ込んだ。
私はDreamweaverで「functions.php」を作成し子テーマ「iconic One_child2」をアップした。
「functions.php」はコードを間違うとブログが真っ白になったり、開かなくなったりするので注意が必要との書き込みあちらこちらに載っていた。案の定、私も下記のようにエラーが表示されダッシュボードが開かなくなった。😱 on line 〇と表示されているが、エラーの行を表示してくれているようだ。
ダッシュボードが開かずエラーが表示されるので、WordPressでの編集は無理。FTPソフトでDreamweaverで作成していた「functions.php」を修正し差し替えを行ったら無事エラーが回避された。どーも私の場合無駄なスペース行がエラーの原因だったような気がする。🙄
それ以外にもエラーが生じた。全てのページに上の方に、「function ad01Func() { if( aicp_can_see_ads() ) { $adCode = ‘」のように表示された。これは「functions.php」に「<?php」が抜けていた為だ。PHPファイルを扱ったことがなく、PHPファイルは「<?php」を記述しないいけないようだ…。😅
私が子テーマで作成した「functions.php」は下記の通り。私の場合、広告が2つ種類あるので2つの広告が入っている。他の方も下記の2点を修正すれば、このまま使えるのでは…。
- data-ad-client=”ca-pub-●●●●●●●●●●” ←パブリッシャー ID AdSense コード
- data-ad-slot=”**********” ←広告1つ1つに振られている番号。広告の種類の数だけある。
AdSense Invalid Click Protector プラグインについていろんなサイトに説明が載っていたが、私はpi-koさんのサイトの方法でやっとうまくいった。pi-koさん、ありがとうございます!🥰
function ad01Func() {
if( aicp_can_see_ads() ) {
$adCode = ‘
<div class=”aicp”>
<script async src=”https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js”></script>
<!– ユニット1 –>
<ins class=”adsbygoogle”
style=”display:block”
data-ad-client=”ca-pub-●●●●●●●●●●”
data-ad-slot=”**********”
data-ad-format=”auto”
data-full-width-responsive=”true”></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>’;
return $adCode;
} else {
return ‘<div class=”error”>スポンサードリンク</div>’;
}
}
add_shortcode(‘ad01’, ‘ad01Func’);
function ad02Func() {
if( aicp_can_see_ads() ) {
$adCode = ‘
<div class=”aicp”>
<script async src=”https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js”></script>
<!– ユニット1 –>
<ins class=”adsbygoogle”
style=”display:block”
data-ad-client=”●●●●●●●●●●”
data-ad-slot=”##########”
data-ad-format=”auto”
data-full-width-responsive=”true”></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>’;
return $adCode;
} else {
return ‘<div class=”error”>スポンサードリンク</div>’;
}
}
add_shortcode(‘ad02’, ‘ad02Func’);
らら母さん
紹介ありがとうございます
テーマって継承できるんですね。初めて知りました
子どものテーマに同名のファイルがあると上書きじゃなくて追記される感じなのかな・
こちらこそ、良い記事ありがとうございました。(^^)
今回、とにかくいろいろと調べて…
コチラのサイトに…
と書かれていたので大丈夫かと、同じファイル名で追加したい内容のみ子テーマに記述しました。
親テーマと子テーマとで同じ関数名を使うとダメのようで、そちらは注意が必要ですね。