Web制作ネタを中心に、ネット上の様々な情報をゆる~く発信する個人ブログです

KuzLog

2018/01/14 2018/10/20 WordPress

【WordPress】プラグイン不要!記事のmoreタグ部分に広告を入れる簡単な方法

WordPressで作られたブログをAdSense等の広告で収益化するなら、moreタグ部分への広告配置は鉄板ですよね。実際、そこそこPVのありそうなブログを覗いてみると、ほとんどが「アイキャッチ画像+導入文→広告→記事本文」という構成で記事を書いています。

「Master Post Advert」というプラグインを使うのが一番手っ取り早いんですが、今回は非プラグインで実装する方法を紹介します。

moreタグ以前・以後で記事を分割する

今回紹介するのは、記事をmoreタグより前の部分と後の部分に分割して出力するという方法です。全て「single.php」の中で完結するので、「function.php」をいじる必要はありません。簡単!

方法

まずは使っているテーマの「single.php」を開き、この部分を探します。

これはループ中の投稿の本文を出力するというテンプレートタグなんですが、これを以下のコードに置き換えます。

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だから…

Master Post Advertと比べたときのメリット

ぶっちゃけmoreタグ部分に広告を入れるだけならMaster Post Advertを使うほうが圧倒的に楽なんですが、今回紹介した方法にもメリットがあります。

  • プラグイン量の削減
  • 不要なタグが出力されない
  • PHPが使える

特に大きいのが、3つ目の「PHPが使える」という点です。PCにはレクタングル大を横並びに2つ、スマホにはレスポンシブ広告を1つ…のように、PCとモバイルでの広告切り替え機能なんかも簡単に実装出来ます。レスポンシブに対応したテーマなら相性抜群です。

ちなみに、一応Master Post Advertでもショートコードを使えばPHPが使えるんですが、そのショートコードを作るためにはfunction.phpをいじらなくてはいけません。function.phpってなんかあんまり触りたくないですよね…


以上で紹介を終わりますが、もっと良い方法を知っている方がいたら教えてくれると喜びます!