Seesaaブログで記事下に広告を表示するやり方を紹介している所は結構あるのですが(つか、それで金取ろうとしてるとこまでありましたが……)単体の記事ページの下に表示するというものばかりでした。
つまり、ブログのトップページの記事の下に広告を表示する方法を紹介しているものが見つけられませんでした。
で、やってみたら出来たので紹介してみます。
これは最新記事の下にのみ表示するものです。つまりトップページを見たときに一番上の記事にのみ表示されます。
無理やりやってる感じですのでもっとうまい方法があるのかも知れませんが……。
1 Seesaaブログの管理画面からデザイン→コンテンツ→記事→コンテンツHTML編集と進み、記事のHTML編集画面を表示します。
2 以下の部分を編集します。
<% if:page_name eq 'article' -%> ←
[1]<div class="text"><% if:diet_log %><% include:article_diet_file %><% /if %><% article.entire_body | bodyfilter(article_info,blog) %><% if:list_tag %><div class="tag-word">タグ:<% loop:list_tag %><a href="<% blog.tag_url(tag) %>"><% tag.word %></a> <% /loop %></div><% /if %>
<% else -%> ←
[2]<div class="text"><% if:diet_log %><% include:article_diet_file %><% /if %><% article.first_body | bodyfilter(article_info,blog) %><% if:list_tag %><div class="tag-word">タグ:<% loop:list_tag %><a href="<% blog.tag_url(tag) %>"><% tag.word %></a> <% /loop %></div><% /if %>
<% /if -%> ←
[3]↓
<% if:page_name eq 'article' -%>
<div class="text"><% if:diet_log %><% include:article_diet_file %><% /if %><% article.entire_body | bodyfilter(article_info,blog) %>
ここに広告のHTML<% if:list_tag %><div class="tag-word">タグ:<% loop:list_tag %><a href="<% blog.tag_url(tag) %>"><% tag.word %></a> <% /loop %></div><% /if %>
<% else -%>
<div class="text"><% if:diet_log %><% include:article_diet_file %><% /if %><% article.first_body | bodyfilter(article_info,blog) %>
<% if:date_format(now,"%Y%m%d%H") eq date_format(article.createstamp,"%Y%m%d%H") -%>ここに広告のHTML<% /if -%><% if:list_tag %><div class="tag-word">タグ:<% loop:list_tag %><a href="<% blog.tag_url(tag) %>"><% tag.word %></a> <% /loop %></div><% /if %>
<% /if -%>
解説です。
まず、
[1]から
[2]までの間が記事ページの場合に表示される部分です。ここには単純に広告のコードを追加します。
[2]から
[3]までが記事ページ以外の場合です。トップページで記事が複数表示される場合などがこちらです。
この部分に単純に広告のHTMLを追加すると記事の件数だけ広告が表示されてしまいます。
そこでこのコードです。
<% if:date_format(now,"%Y%m%d%H") eq date_format(article.createstamp,"%Y%m%d%H") -%>ここに広告のHTML<% /if -%>
これは記事の時間とブログが再構築された時間を比較して、時間が同じであれば表示するという書き方になります。
nowがブログの再構築時間、article.createstampが記事ごとの更新時間です。date_formatは日付情報の書式を整形しています。
この例では年月日時までが同じ場合に広告HTMLを表示することにしています。分、秒単位まで指定してしまいますと、再構築の時間と記事の更新時間が微妙にずれてしまい、時間が同じと見なされません。
注意点としては、
- 同じ時間帯に何度も更新するとその記事全てに広告が表示されてしまいます。(11時〜12時の間に5件の記事を投稿すると、その5件全てに広告が表示される。)
- ブログの設定変更で再構築されてしまい、再構築時間が更新されて広告が表示されなくなる。
があります。
これは日付フォーマットを"%Y%m%d%H%M"のように分単位で比較するようにしたり、更新時間と再構築時間が一致するように適宜調整するといった方法で回避してください。
単純に最新記事がわかる変数やら、ループカウンタを取得する方法があったら簡単なんですがもしかしたらあるんでしょうか?(ぐぐってみた感じでは見つからなかったんですが……)