ワードプレス、アドセンス広告を自動で表示させたいょ?

ワードプレス
スポンサーリンク

アドセンス広告をいちいちショートタグやmoreタグで入力するのが大変!
って、正直に面倒で忘れてしまいます。

検索して試して、最終的には「Advanced Ads」に落ち着いたわけです。

だけどね、色々試したのをサクッと消すのはもったいないので、お得意の覚書と行きましょう。

スポンサーリンク

参考にしたサイトは?

まずはね、Simplicityさんでも紹介されていた「本文記事1、2、3番目のH2見出し手前にアドセンスを挿入するWordPressカスタマイズ方法」と、Simplicityさんの質問板で見つけた「下から1番目のh2タグ上に広告」と、ad-noteさんの「WordPress記事内の最初と最後のhタグ直前にアドセンスを貼る方法」を参考に混ぜてみた。

結果、何とか希望の表示になったが・・・

「Advanced Ads」使う方が良いよ!
広告みたいのがウザいけど使い慣れたらとってもいいよ!
Hタグ以外にPタグまで指定して表示できちゃうからね!

とりま、プログラマーとかオサレな職でも何でもないし、知識もないから変な感じなっているか?

functions.php
function add_ad_before_h2_for_3times1($the_content) {
    //最初のH2見出し手前に広告を挿入
    $ad1 = <<< EOF
///////////////////
//ここに広告
///////////////////
EOF;
    //2番目の広告を挿入
    $ad2 = <<< EOF
///////////////////
//ここに広告
///////////////////
EOF;
    //最後のH2見出し手前に広告を挿入
    $ad3 = <<< EOF
///////////////////
//ここに広告
///////////////////
EOF;
    
    if (is_single()) { //投稿ページ
        $h2 = '/^<h2.*?>.+?<\/h2>$/im'; //H2見出しのパターン
        if (preg_match_all($h2, $the_content, $h2s)) { //H2見出しが本文中にあるかどうか
            if ($h2s[0]) { //チェックは不要と思うけど一応
                if ($h2s[0][0]) {
                    // 1番目のH2見出し手前にを挿入
                    $the_content = str_replace($h2s[0][0], $ad1 . $h2s[0][0], $the_content);
                }
                if (count($h2s[0]) < 3) {
                    // 3つ以下の時
                    // $the_content = str_replace($h2s[0][0], $ad2 . $h2s[0][0], $the_content);
                } elseif (count($h2s[0]) == 3) {
                    // 3つの時
                    // $the_content = str_replace($h2s[0][2], $ad2 . $h2s[0][2], $the_content);
                } else {
                    // 3つ以上の時
                    $the_content = str_replace($h2s[0][2], $ad2 . $h2s[0][2], $the_content);
                }
                if ($h2s[0][1]) {
                    // 最後のH2見出し手前に広告を挿入
                    $the_content = str_replace($h2s[0][count($h2s[0]) - 1], $ad3 . $h2s[0][count($h2s[0]) - 1], $the_content);
                }
            }
        }
    }
    return $the_content;
}
add_filter('the_content', 'add_ad_before_h2_for_3times1');

後から見て分かるか心配・・・?

下はmoreタグ挿入でアドセンス広告を表示させちゃおう!ってやつ。

functions.php
//本文中の<!--more-->タグをアドセンスに置換
function replace_more_tag($the_content) {
    //広告(AdSense)タグを記入
    $ad          = <<< EOF
///////////////////
//ここに広告
///////////////////
EOF;
    $the_content = preg_replace('/(<p>)?<span id="more-([0-9]+?)"><\/span>(.*?)(<\/p>)?/i', "$ad$0", $the_content);
    return $the_content;
}
add_filter('the_content', 'replace_more_tag');

どちらもfunctions.phpに書き込みしないといけないので、ちょっとでも間違えると真っ白になっちゃうのだ。

一応、プラグインを使わなくても自動でアドセンスを指定するH2タグの上に表示出来ちゃうってことです。

スポンサーリンク

まとめ

でも・・こういうのはプラグインを使った方が良いね!
分からないことに時間をかけるより、サクッ!とプラグイン!

他には「Quick Adsense」が自分的には良かったです。
シンプルで1ページ内で設定出来るから分かりやすいでした。

スポンサーリンク

関連記事一覧

  1. この記事へのコメントはありません。

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)