WordPressで記事を書く際にプレビューで何度も確認していると広告を表示させすぎてペナルティーになりそうで心配だったり、自分でクリックしてしまってこれまたペナルティーになるんじゃないかと不安になりますよね。
そんな不安を解消するためにWordPressに自分がログインしているときに広告を非表示にする方法を紹介します。
※管理者である自分以外はログインしないという前提です。
ログインを判別する関数を使う
WordPressにはログイン状態をチェックする関数があります。
if(is_user_logged_in()){ //ログインしてるときの処理 }
phpでこのように記述すればログイン時のみの処理を書くことができます。
実は一回の記述でOKなアドセンスのコードがある
実はアドセンスで広告のコードを取得するときにページに1回だけ記述すればOKなものがあります。
通常広告のコードを取得するときは下のように表示されるものをコピーして使うと思います。
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-123456789" crossorigin="anonymous"></script> <!-- 広告の名前 --> <ins class="adsbygoogle" style="display:block;" data-ad-client="ca-pub-123456789" data-ad-slot="123456789"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>
このコードの一番最初の
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-123456789" crossorigin="anonymous"></script>
の部分はページ内に一つあればOKなんです。すべての広告の表示毎に書いておく必要はありません。
なので広告を貼る際はこの部分をはずしておきます。
そしてこの部分が無いと広告は表示されません。これ以外の部分は記述しておいても広告は表示されないです。これが広告を一括表示しているプログラムなのでこれが無ければ広告は出ないんです。
header.phpに記述しておけばOK
ページ内に一つあればOKならばheader.phpのheadタグ内に記述しておけばすべてのページで適用されて楽ちんです。
<head> <?php if(!is_user_logged_in()): ?> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-123456789" crossorigin="anonymous"></script> <?php endif; ?> </head>
条件分に!(ノット)を入れてログインしていないときだけアドセンスのスクリプトを読みこむようになっています。
基本的にサイト管理している自分はログイン状態になっていると思うのでこれで自分が見るときは広告が表示されなくなります。
そしてログインしていない閲覧者にはちゃんと広告が表示されます。
アナリティクスも入れておこう
ついでにアナリティクスのコードも一緒に入れておくと自分のアクセスがカウントされないようになるので訪問ユーザーの正確なアクセス数を把握できるようになります。