ページ

2009/11/12

Bloggerに関連記事を導入

http://customize-your-blogger.blogspot.com/2009/08/how-to-create-related-posts-1.html




1.Bloggerにログイン後、 [レイアウト] → [HTMLの編集] → [ウィジェットのテンプレートを展開] をクリック。

ここで、変更が失敗したときのために備えてテンプレートのコードを全てコピーしてテキストファイル(メモ帳メモ帳など)に貼り付け、バックアップを取っておくことをお勧めします。

2. [テンプレートを編集] 画面で下記のコードを見つける。

<b:include data='post' name='post'/>

※ 早く見つけるコツ!
  1. "Ctrlキー" + "Fキー" の同時押し。

    ( "Ctrlキー" を押しながら "Fキー" を押します)
  2. 検索窓にコードをコピペして検索。

3.見つけたら、そのコードの直後に下記のコードを追加する。

<b:include data='posts' name='related-posts'/>

4.次に、下記のコードを見つける。

<b:includable id='main' var='top'>

5.見つけたら、そのコードの直前に下記のコードを追加する。

<b:includable id='related-posts' var='posts'>
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<div class='similiar'>
<div class='widget-content'>
<h3>関連記事</h3>
<div id='data2007'/><br/>
   <script type='text/javascript'>
 
   var homeUrl3 = &quot;<data:blog.homepageUrl/>&quot;;
   var maxNumberOfPostsPerLabel = 4;
   var maxNumberOfLabels = 10;
 
   maxNumberOfPostsPerLabel = 5;
   maxNumberOfLabels = 2;
 
 
   function listEntries10(json) {
   var ul = document.createElement(&#39;ul&#39;);
   var maxPosts = (json.feed.entry.length &lt;= maxNumberOfPostsPerLabel) ? 
                 json.feed.entry.length : maxNumberOfPostsPerLabel;
   for (var i = 0; i &lt; maxPosts; i++) {
   var entry = json.feed.entry[i];
   var alturl;
 
       for (var k = 0; k &lt; entry.link.length; k++) {
         if (entry.link[k].rel == &#39;alternate&#39;) {
           alturl = entry.link[k].href;
           break;
         }
       }
       var li = document.createElement(&#39;li&#39;);
       var a = document.createElement(&#39;a&#39;);
       a.href = alturl;
 
if(a.href!=location.href) {
   var txt = document.createTextNode(entry.title.$t); 
   a.appendChild(txt);
   li.appendChild(a);
   ul.appendChild(li); 
}
   }
     for (var l = 0; l &lt; json.feed.link.length; l++) {
       if (json.feed.link[l].rel == &#39;alternate&#39;) {
         var raw = json.feed.link[l].href;
         var label = raw.substr(homeUrl3.length+13);
        var k;
         for (k=0; k&lt;20; k++) label = label.replace(&quot;%20&quot;, &quot; &quot;);
         var txt = document.createTextNode(decodeURIComponent(label));
         var h = document.createElement(&#39;b&#39;);
         h.appendChild(txt);
         var div1 = document.createElement(&#39;div&#39;);
          div1.appendChild(h);
         div1.appendChild(ul);
         document.getElementById(&#39;data2007&#39;).appendChild(div1);
       }
     }
   }
   function search10(query, label) {
 
   var script = document.createElement(&#39;script&#39;);
   script.setAttribute(&#39;src&#39;, query + &#39;feeds/posts/default/-/&#39;
    + label +
    &#39;?alt=json-in-script&amp;callback=listEntries10&#39;);
   script.setAttribute(&#39;type&#39;, &#39;text/javascript&#39;);
   document.documentElement.firstChild.appendChild(script);
   }
 
   var labelArray = new Array();
   var numLabel = 0;
 
   <b:loop values='data:posts' var='post'>
     <b:loop values='data:post.labels' var='label'>
       textLabel = &quot;<data:label.name/>&quot;;
     
       var test = 0;
       for (var i = 0; i &lt; labelArray.length; i++)
       if (labelArray[i] == textLabel) test = 1;
       if (test == 0) { 
          labelArray.push(textLabel);
          var maxLabels = (labelArray.length &lt;= maxNumberOfLabels) ? 
                 labelArray.length : maxNumberOfLabels;
           if (numLabel &lt; maxLabels) {
             search10(homeUrl3, textLabel);
             numLabel++;
          }
       }
     </b:loop>
   </b:loop>
   </script>
</div>
</div>
</b:if>
</b:includable>

6.追加後、以下の赤色の部分を変更する。

  • 関連記事

    → Related PostsやRelated Posts by Labelsなど
  • maxNumberOfPostsPerLabel = 5;

    : ラベル毎に表示する記事数
  • maxNumberOfLabels = 2;

    : 表示するラベル数 (アルファベット昇順)
因みに、上にある導入後の画像の記事数・ラベル数の設定は、記事数5・ラベル数2の設定です。この設定がベストな設定かと思われます。

7.最後に、]]></b:skin>を見つけ、その直前に下記のコードを追加して、 [テンプレートを保存] をクリック。

/* Related Posts
-------------------------------------------- */
.similiar ul li {
font-size: .95em;
}
このコードで、関連記事の文字の大きさを調整します。font-sizeの値を小さくすると、文字の大きさが小さくなります。

1 comment:

匿名 さんのコメント...

hm... interesting style )