WordPress(ワードプレス)カスタマイズ!プラグインなしでGoogleAdsense(グーグルアドセンス)の広告タグを自動挿入する方法

WordPress(ワードプレス)カスタマイズ!プラグインなしでGoogleAdsense(グーグルアドセンス)の広告タグを自動挿入する方法

WordPress(ワードプレス)カスタマイズ!プラグインなしでGoogleAdsense(グーグルアドセンス)の広告タグを自動挿入する方法

WordPress(ワードプレス)カスタマイズ!プラグインなしでGoogleAdsense(グーグルアドセンス)の広告タグを自動挿入する方法
最終更新日:2020.08.26

こんにちわ。めんどくさい全1のナコ(@nako_x)です。
皆さん、記事内の広告タグってどうやって貼っていますか?
テンプレートでも記事上、下はフォローしてくれているものが多いですが、効果の高いといわれている記事内はプラグインに頼るか自力でタグを挿入するかしかありません。

そのめんどくさいを解決する方法を紹介します!

この記事で「GoogleAdsense(グーグルアドセンス)の広告タグを自動挿入する方法」する方法は
プラグイン無し[function.php]
でカスタマイズします。

収益を上げペナルティを下げるベストな位置

広告の配置についてこのイラストをみてください。

WordPress(ワードプレス)カスタマイズ!プラグインなしでGoogleAdsense(グーグルアドセンス)の広告タグを自動挿入する方法

これは効果が高くGoogleAdsense(グーグルアドセンス)のルールも守りよしとされている広告配置の形です。
ファーストビューに広告があってはならないというGoogleAdsense(グーグルアドセンス)ルールもまもりつつ、いい感じに配置するにはこの布陣がベストです。

WordPress(ワードプレス)カスタマイズ!プラグインなしでGoogleAdsense(グーグルアドセンス)の広告タグを自動挿入する方法

しかしこの配置を実践しようとしたらどうしても手入力で記事を書く度にタグを挟んであげる必要があります。
使っているテーマでは記事の上か下しかフォローしてないしこれがめんどくてめんどくて・・

なこ
えええーーー無理!!!

と発狂寸前でした。

とっても面倒だったので

プラグインなしでGoogleAdsense(グーグルアドセンス)の広告タグを自動挿入する方法を考えました!

WordPress(ワードプレス)カスタマイズ!プラグインなしでGoogleAdsense(グーグルアドセンス)の広告タグを自動挿入する方法

1,元々広告タグGoogleAdsense(グーグルアドセンス)が入っている記事には自動挿入しない
2,記事投稿ページで自動挿入するかしないか選択可能
3,タイトル(H2)が3つ以上の時だけ真ん中に広告が挿入される

function.phpに以下のタグを貼り付けるだけでいけます〜1分で実装できますよ(^o^)

最初のh2,真ん中のh2,記事最後に広告を挿入する

以下のタグをfunction.php一番下に貼り付けてください。

※今回はアドセンスタグを抜き出して判別をかけています。
function内で広告挿入のショートコードをアドセンスタグに変換処理をしている場合があるので一番下が安全です。

できれば子テーマ内のfunction.phpに追加してください!

コピー


//////////////////////////////////////////////////
//広告タグ自動挿入
//////////////////////////////////////////////////

// カスタムフィールドの追加

function add_custom_field() {
	add_meta_box( 'custom-auto_add', '広告自動挿入', 'create_auto_add', 'post', 'side' );
}

function create_auto_add() {
	$keyname = 'auto_add';
	global $post;
	// 保存されているカスタムフィールドの値を取得
	$get_value = get_post_meta( $post->ID, $keyname, true );

	// checkboxの値
	$data = ['する', 'しない'];

	// nonceの追加
	wp_nonce_field( 'action-' . $keyname, 'nonce-' . $keyname );

	// HTMLの出力
	foreach( $data as $d ) {
		$checked = '';
		if( $d === $get_value ) $checked = ' checked';
		echo '<label><input type="radio" name="' . $keyname . '" value="' . $d . '"' . $checked . '>' . $d . '</label>';
	}
}

add_action( 'admin_menu', 'add_custom_field' );

// カスタムフィールドの保存

function save_custom_field( $post_id ) {
	$custom_fields = ['auto_add'];

	foreach( $custom_fields as $d ) {
		if ( isset( $_POST['nonce-' . $d] ) && $_POST['nonce-' . $d] ) {
			if( check_admin_referer( 'action-' . $d, 'nonce-' . $d ) ) {

				if( isset( $_POST[$d] ) && $_POST[$d] ) {
					update_post_meta( $post_id, $d, $_POST[$d] );
				} else {
					delete_post_meta( $post_id, $d, get_post_meta( $post_id, $d, true ) );
				}
			}
		}
	}
}

add_action( 'save_post', 'save_custom_field' );

function ad_before_h2($content) {
//広告を自動挿入する
$ad = <<< EOF
	★★★★★★★★★★ 広告が入ります ★★★★★★★★★★
EOF;

	if ( is_single() ) {//投稿ページ
		$h2 = '/^<h2.*?>.+?<\/h2>$/im';
		$adsbygoogle = "adsbygoogle";//adsenseタグがある場合の判別
		global $post;
		$add_flag = get_post_meta(get_the_ID(), 'auto_add', true);//自動広告カスタムフィールドの値を取得

		if($add_flag === "する") {//自動広告する場合
			if(strpos($content,$adsbygoogle) == false){//adsenseタグがある場合の判別
				if ( preg_match_all( $h2, $content, $h2s )) {//h2タグの検索

					if ( $h2s[0] ) {
						if ( $h2s[0][0] ) {//1番目のH2見出し手前に広告を挿入
							$content  = str_replace($h2s[0][0], $ad.$h2s[0][0], $content);
						}

						$h2_count = count($h2s[0]);  //h2の数をカウント

						if ( $h2_count > 2 ) { //h2の数が0以上の場合
							$h2_count = $h2_count / 2;
							if ( $h2s[0][$h2_count] ) {//真ん中のH2見出し手前に広告を挿入
								$content  = str_replace($h2s[0][$h2_count], $ad.$h2s[0][$h2_count], $content);
							}
						}
						$content  = $content.$ad;//最後に広告を挿入
					}

				}
			}
		}
	}
	return $content;
}

add_filter('the_content','ad_before_h2');

★★★★★★★★★★ 広告が入ります ★★★★★★★★★★
のところにアドセンスのタグを追加してください!

やってることは以下になります。

1,元々広告タグ(グーグルアドセンス)が入っている記事には自動挿入しない

アドセンス独自のタグが記事内にあるか判別してタグが見つかった場合は処理をしないようになっています。

2,記事投稿ページで自動挿入するかしないか選択可能

管理画面の記事投稿ページにカスタムフィールド「広告自動挿入」が表示されます。
WordPress(ワードプレス)カスタマイズ!プラグインなしでGoogleAdsense(グーグルアドセンス)の広告タグを自動挿入する方法
ラジオボタンを「する」とした場合のみ表示されます。

3,タイトル(H2)が3つ以上の時だけ真ん中に広告が挿入される

あまりタイトルが少ない場合は最初のh2上、記事の最後の2箇所のみ自動挿入されます。

もっと沢山広告貼りたい…!

上の方法は3箇所ですがもっと沢山広告貼りたい…!って方にも対応する方法も一緒に紹介します。
function.phpにの該当箇所に追加してみてください。

コピー


if ( $h2s[0][0] ) {//1番目のH2見出し手前に広告を挿入
	$content  = str_replace($h2s[0][0], $ad.$h2s[0][0], $content);
}

if ( $h2s[0][3] ) {//3番目のH2見出し手前に広告を挿入
	$content  = str_replace($h2s[0][3], $ad.$h2s[0][3], $content);
}

if ( $h2s[0][6] ) {//6番目のH2見出し手前に広告を挿入
	$content  = str_replace($h2s[0][6], $ad.$h2s[0][6], $content);
}

タグ内の【1番目のH2見出し手前に広告を挿入】部分をカスタマイズすることで何個目のh2に表示するか変更ができます。
また数も増やすことができます。

なこ
わからなくなったら聞いてくださいね!

まとめ

これで広告位置を気にせず記事の随筆に集中できますよ!
うほうほ

↓自動化カスタマイズはこちら↓

↓簡単カスタマイズはこちら↓