[当ブログは、アフィリエイトプログラムに参加しています。ページに広告が含まれる場合があります]

2016/07/29

Bloggerに【続きを読む】を自動で挿入してサムネイルも表示させる方法

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

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

ところが、ブログアーカイブページで「前の投稿」を選ぶと次ページで全文表示に戻ってしまうんです。
しかもアーカイブされた記事が複数あればあるだけ縦長に表示され、見づらい&アドセンス広告も記事の数だけ表示されるため、非常に困るわけです。

そこで、HTMLに【続きを読む】を自動で挿入し、折りたたんで表示させることにしました。
自動なので記事毎に冒頭文の長さを調整する必要がなく、サムネイル表示もされ、見栄えが良くなります。

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

HTMLを編集するので、失敗した時に戻せるようバックアップしてから始めましょう。

【続きを読む】を自動で入れる

1.「HTMLで編集」で</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トップページの記事数を変更する方法

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

【関連記事】
「ネタバレ」隠しに。Bloggerで折りたたみ式【続きを読む】を挿入する方法 
Bloggerのラベルページとブログアーカイブページに記事タイトルのみ表示させる方法
スポンサーリンク
関連コンテンツ