WordPressで特定の記事やカテゴリでGoogle AdSenseを非表示にする方法

1,617 views






Google AdSense 非表示

WordPressで特定の記事やカテゴリだけ、Google AdSenseを非表示にしたい・・そう思ったことはありませんか?

私の場合、クライアントから受ける記事の場合、記事内の広告を非表示にしてほしいと言われたことがありました。その際に行った実装について説明します。

作業には必ず、バックアップを取って行って下さいね。

SPONSORED LINK

特定の記事で非表示にする

特定の記事だけブロックする方法です。

WordPressの投稿画面で非表示にしたい投稿のIDを調べる

Google AdSense 非表示

まずWordPressの投稿画面で、広告を非表示にしたい投稿のIDを調べます。

投稿→該当の記事にカーソルをオン。すると、左下にpost=「数字」というのが表示されますよね。これがIDです。これをメモします。

そして、以下のコードを、広告を入れたい部分に挿入します。

コード:1つの場合

<?php if(!is_single('数字')) : ?>
ここにアドセンスのコードを入れる
<?php endif; ?>

コード:投稿が複数ある場合

たぶんほとんどの場合はこちらのコードになるかと思います。

例として、投稿IDが3,9,15の場合

<?php if(!is_single(array(3, 9, 15))) : ?>
ここにアドセンスのコードを入れる
<?php endif; ?>

数を増やしたい場合は、カンマと数字を入れて下さい。

SPONSORED LINK

特定のカテゴリで非表示にする

運営報告などのカテゴリとしてまとまっている場合は、こちらのカテゴリごと非表示にしてしまう方が便利です。

カテゴリIDを調べる

Google AdSense 非表示

さきほどと同じく、WordPressで投稿→カテゴリでカテゴリ一覧を表示させたら、非表示にしたいカテゴリにカーソルをオン。左下にでてくる、tag_ID=「数字」の部分の数字がカテゴリIDです。これをまたメモします。

コードを挿入

<?php if(!in_category('数字')): ?>
ここにアドセンスのコードを入れる
<?php endif; ?>

コード:カテゴリが複数ある場合

これもさきほどと同じく、複数指定したい場合は以下のように書いて下さい。
例として、カテゴリIDが3,9,15の場合

<?php if(!in_category( array( 3,9,15 ) )): ?>
ここにアドセンスのコードを入れる
<?php endif; ?>

これで非表示になります。

これらは以下の記事を参照させていただきました。ありがとうございます。こちらの記事では、特定のタグによる非表示の方法も紹介されています。

SPONSORED LINK

ままはっくはどうやってるの?

紹介しておいてなんですが、私の場合は上のコードだけでは適用できません。function.phpにて、記事本文中にGoogle AdSenseを入れるということをしているので、その中で上のコードを組み込む必要がありました。

というわけで私が実際に書いているコードが以下。

※そもそも私がどのようにGoogle AdSenseを入れているのかについては、こちらの記事を参照ください。

ままはっくのGoogle AdSenseの位置を公開。コピペでOK!記事本文中にアドセンスを差し込む方法【WordPress】

こんにちは、まなしばです。このブログもさまざまなブロガーさんに読んでいただいていることもあり、またこのブログ自…

mama-hack.com

function.phpに書いているコード

私はカテゴリごとAdSenseを非表示にする方法を使用しています。カテゴリは複数指定中。

カテゴリはこの例の場合、1と83のIDを非表示指定した場合です。

moreタグ置換しているAdSenseを非表示にする

//more位置へ挿入
add_filter('the_content', 'adMoreReplace');
function adMoreReplace($contentData) {
$adTags = <<< EOD
ここにAdSenseのコード
EOD
;
if((is_single())&&(!in_category(array('1','83')))){
$contentData = preg_replace('/<p><span id="more-([0-9]+?)"><\/span>(.*?)<\/p>/i', $adTags, $contentData);
$contentData = str_replace('', "", $contentData);
$contentData = str_replace('', '', $contentData);
}
return $contentData;
}

2番目のh2タグ、3番目のh2タグの直前のAdSenseを非表示にする

/*****2番目の見出しタグの直前にアドセンスを埋め込むコード********/
add_filter( 'the_content', 'my_insert_ads_into_posts' );
function my_insert_ads_into_posts( $content ) {
global $my_menu_name;
if((is_single())&&(!in_category(array('1','83')))){
$pc_ad_code = 'ここにPC用のAdSenseコード';
$sp_ad_code = 'ここにスマホ用のAdSenseコード';
if(is_mobile()) {
return my_insert_before( $content,2, '<h2' , $sp_ad_code );
}else {
return my_insert_before( $content,2, '<h2' , $pc_ad_code );
}
return $content;
}
else
{
return $content;
}
}
/*****3番目のh2タグの直前にアドセンスを埋め込むコード********/
add_filter( 'the_content', 'my_insert_ads_into_posts2' );
function my_insert_ads_into_posts2( $content) {
global $my_menu_name;
if((is_single())&&(!in_category(array('1','83')))){
$pc_ad_code = 'ここにPC用AdSenseコード';
$sp_ad_code = 'ここにスマホ用AdSenseコード';
if(is_mobile()) {
return my_insert_before( $content,3, '<h2' , $sp_ad_code );
}else {
return my_insert_before( $content,3, '<h2' , $pc_ad_code );
}
return $content;
}
else
{
return $content;
}
}
function my_insert_after( $my_content , $my_ikutume, $my_kugiri, $my_insert ) {
$kugirare_parts = explode( $my_kugiri, $my_content );
foreach ($kugirare_parts as $index => $kugirare_part) {
if ( trim( $kugirare_part )) {
$kugirare_parts[$index] .= $my_kugiri;
}
if ( $my_ikutume == $index+1 ) {
$kugirare_parts[$index] .= $my_insert;
}
}
return implode( '', $kugirare_parts );
}
function my_insert_before( $my_content , $my_ikutume, $my_kugiri, $my_insert ) {
$kugirare_parts = explode( $my_kugiri, $my_content );
foreach ($kugirare_parts as $index => $kugirare_part) {
if ( trim( $kugirare_part )&& $index!=0) {
$kugirare_parts[$index] = $my_kugiri.$kugirare_parts[$index];
}
if ( $my_ikutume == $index ) {
$kugirare_parts[$index] = $my_insert.$kugirare_parts[$index];
}
}
return implode( '', $kugirare_parts );
}

ハイライトしている部分が、非表示にするためのコードとなります。

見る人が見ればいびつなコードなのですが、とりあえず動くのでよしとしています。

まとめ

Google AdSenseを非表示にする方法でした。

今回のPHPのコードは、さすがに私ではどこに非表示コードを入れればいいかわからなかったため、カヤックの夫に実装してもらいました。皆さんにシェアできればと思い。よかったら参考にしてください。

関連記事

WordPressの記事本文中にmoreタグを置換してアドセンスを入れ、CSSで整える方法

@まなしばです。 皆さんは記事の途中にどうやって広告を入れていますか? 見出しタグの前に入れる方法、moreタ…

mama-hack.com

ままはっくのGoogle AdSenseの位置を公開。コピペでOK!記事本文中にアドセンスを差し込む方法【WordPress】

こんにちは、まなしばです。このブログもさまざまなブロガーさんに読んでいただいていることもあり、またこのブログ自…

mama-hack.com

育児エルゴから新作抱っこひもが出ました。新生児から使える最強の抱っこ紐はこちら

この記事がよかったら
いいね!お願いします
ヽ(=´▽`=)ノ

ままはっくの最新情報を
お届けします

Twitterでまなしばをフォローしよう!

この記事を書いている「まなしば」って誰?

こちらの記事もよく読まれています

今日の人気記事

  • プロフィール画像
    2歳の娘とエンジニアの夫と3人暮らしの88世代のブロガー。産休中からブログ書いてたら、月間60万PVになったので、脱サラしてフリーランスでメディアを作ってます。趣味はPerfume、ポケモン。東京在住の大阪人/同志社
    詳しいプロフィール・お問い合わせはこちら

ままはっくについて

アクセスありがとうございます。
このブログは育児ブロガー・まなしばが、妊娠出産・子育て・WEBサービスについて書いている“ママ術”的ブログです。
よろしくどうぞ!ヽ(=´▽`=)ノ
まなしばの詳しいプロフィール
Twitter | Facebook
プライバシーポリシー

夫と開発したブロガー向けツール

iOSとAndroidアプリ両方を探して紹介できるアプリ紹介ツール:
アプリーチ

TOP