WordPressで作られたブログをAdSense等の広告で収益化するなら、moreタグ部分への広告配置は鉄板ですよね。実際、そこそこPVのありそうなブログを覗いてみると、ほとんどが「アイキャッチ画像+導入文→広告→記事本文」という構成で記事を書いています。
「Master Post Advert」というプラグインを使うのが一番手っ取り早いんですが、今回は非プラグインで実装する方法を紹介します。
今回紹介するのは、記事をmoreタグより前の部分と後の部分に分割して出力するという方法です。全て「single.php」の中で完結するので、「function.php」をいじる必要はありません。簡単!
まずは使っているテーマの「single.php」を開き、この部分を探します。
1 |
<?php the_content(); ?> |
これはループ中の投稿の本文を出力するというテンプレートタグなんですが、これを以下のコードに置き換えます。
1 2 3 4 5 6 |
<?php if(strpos(get_the_content(),'id="more-')): global $more;$more=0;the_content('');?> <!--ここに広告コードを挿入--> <?php $more=1;the_content('',true); else:the_content(); endif;?> |
3行目にAdSenseの広告コードをコピペすれば、moreタグを入れた部分にAdSense広告が表示されるようになります。
記事が分割できるのは分かったけど、どういう仕組みで動いているのか分からないと気持ち悪い!という人のために軽く解説を。
if(strpos(get_the_content(),’id=”more-‘)):
「もし投稿の中にid=”more-が含まれていたら」
global $more;$more=0;the_content(”);
「グローバル変数の$moreに0をセットして、投稿の前半部分だけ出力するよ~」
$more=1;the_content(”,true);
「$moreに1をセットして、投稿の後半部分だけを出力するよ~」
else:the_content();endif;
「id=”more-が含まれてなかったら普通に投稿を出力するよ~終わりッ!」
解説が下手クソすぎて涙が出そうですが、こんな感じで記事を分割してるというワケです。まぁ動いてればOKだから…
ぶっちゃけmoreタグ部分に広告を入れるだけならMaster Post Advertを使うほうが圧倒的に楽なんですが、今回紹介した方法にもメリットがあります。
特に大きいのが、3つ目の「PHPが使える」という点です。PCにはレクタングル大を横並びに2つ、スマホにはレスポンシブ広告を1つ…のように、PCとモバイルでの広告切り替え機能なんかも簡単に実装出来ます。レスポンシブに対応したテーマなら相性抜群です。
ちなみに、一応Master Post Advertでもショートコードを使えばPHPが使えるんですが、そのショートコードを作るためにはfunction.phpをいじらなくてはいけません。function.phpってなんかあんまり触りたくないですよね…
以上で紹介を終わりますが、もっと良い方法を知っている方がいたら教えてくれると喜びます!