-->
スポンサーリンク

2016年7月29日金曜日

Bloggerの”ブログアーカイブ年別表示”を一覧にして【続きを読む】を自動で挿入する方法

更新日:2017年03月01日(水)
続きを読む
Bloggerはデフォルトだとトップページやラベル、ブログアーカイブページで記事が全文表示されてしまいます。

そのため、このブログを始めてすぐBloggerのラベルページとブログアーカイブページはタイトル表示のみに、トップページは最新記事のみ表示されるよう設定を変更していました。

ところが、ブログアーカイブで年別表示を選ぶとその年の記事がもれなく全文表示されてしまいます。
アドセンス広告も記事の数だけ表示されるのであまり良くないですね。
これはトップページとブログアーカイブページに「続きを読む」を自動で挿入し、一覧表示させることで回避できます。

参考にしたサイトはこちらです。
●http://okisuta.blogspot.jp/2012/08/blog-post_15.html
●http://blog1.erp2py.com/2011/04/blogger-auto-read-more-for-blogger.html

テンプレートを編集するので、失敗した時に戻せるようバックアップしてから始めましょう。
【続きを読む】を自動で入れる

1.テンプレートで</head>を検索、そのすぐ前にコードを入れます。

<script type='text/javascript'>var thumbnail_mode = "no-float" ;
summary_noimg = 200;
summary_img = 120;
img_thumb_height = 200;
img_thumb_width = 200;
</script>
<script type='text/javascript'>
//<![CDATA[
function removeHtmlTag(strx,chop){
if(strx.indexOf("<")!=-1)
{
var s = strx.split("<");
for(var i=0;i<s.length;i++){
if(s[i].indexOf(">")!=-1){
s[i] = s[i].substring(s[i].indexOf(">")+1,s[i].length);
}
}
strx = s.join("");
}
chop = (chop < strx.length-1) ? chop : strx.length-2;
while(strx.charAt(chop-1)!=' ' && strx.indexOf(' ',chop)!=-1) chop++;
strx = strx.substring(0,chop-1);
return strx+'...';
}
function createSummaryAndThumb(pID){
var div = document.getElementById(pID);
var imgtag = "";
var img = div.getElementsByTagName("img");
var summ = summary_noimg;
if(img.length>=1) {
imgtag = '<span style="float:left; padding:0px 10px 5px 0px;"><img src="'+img
[0].src+'" width="'+img_thumb_width+'px" height="'+img_thumb_height+'px"/></span>';
summ = summary_img;
}
var summary = imgtag + '<div>' + removeHtmlTag(div.innerHTML,summ) + '</div>';
div.innerHTML = summary;
}
//]]>
</script>

2.次に2つ目の<data:post.body/>を検索し、下記コードに置き換えます。
ただし、<data:post.body/>が沢山あってどれかよくわからない場合は、
<div style='clear: both;'/> <!-- clear for photos floats -->の手前にある <data:post.body/> を置き換えます。
<!--readmore-->
<b:if cond='data:blog.pageType == "item"'>
<data:post.body/>
<b:else/>
<b:if cond='data:blog.pageType == "static_page"'>
<data:post.body/>
<b:else/>
<b:if cond='data:post.hasJumpLink'>
<data:post.body/>
<b:else/>
<b:if cond='data:post.snippet'>
<b:if cond='data:post.thumbnailUrl'>
<div class='Image thumb'>
<img expr:src='data:post.thumbnailUrl'/>
</div>
</b:if>
<data:post.snippet/>
<div class='jump-link'>
<a expr:href='data:post.url + "#more"' expr:title='data:post.title'><data:post.jumpText/></a>
</div>
<b:else/>
<data:post.body/>
</b:if>
</b:if>
</b:if>
</b:if>
<!--readmore end-->

通常であればどちらか一方のコードを入れれば良いのですが、上手く作動しなかったので2つのサイトの合う方を抜き出し組み合わせました。

めでたくブログアーカイブの年別表示が「タイトル・サムネイル・冒頭文&【続きを読む】」の一覧表示になりましたよ!

記事下のアドセンス広告も非表示になり一安心♪

トップページも同様の表示になったので記事数を1から3に増やすことにしました。

Bloggerトップページの記事数を変更する方法

レイアウト→ブログの投稿ガジェット→編集→ブログの投稿の設定画面「メインページの投稿数」欄で記事数を指定し、表示する記事数を指定できます。
ブログの投稿の設定
【続きを読む】を【ネタバレ】【もっと読む】などに変更したい場合は、「投稿ページのリンクテキスト」欄で設定可能です。
スポンサーリンク
こんな記事も書いてます↓