Membuat Related Posts Multi Label

Related Posts
Related posts, salah satu widget yang paling banyak dicari blogger yang baru membangun blognya. Widget yang biasa dipasang di bawah postingan biasanya diberi judul "Baca juga" atau "Artikel terkait" dan masih banyak lagi. Terserah mau diberi judul apa. Intinya supaya pengunjung blog yang membaca postingan kita tertarik untuk membaca postingan berikutnya.

Nah, biasanya widget related posts yang beredar kebanyakan hanya untuk satu label. Artinya jika postingan kita memiliki lebih dari satu label, maka yang akan tampil di related posts hanya satu label saja.

Oleh karena itu, di sini saya akan memberikan script related posts multi label. Related posts yang bisa membaca semua label yang ada dalam postingan. Sehingga artikel terkait dalam postingan tersebut menjadi banyak dan beragam sesuai label yang tertanam pada postingan awal.

Berikut scriptnya yang saya ambil dari blog sebelah. Link blognya tidak saya hapus. Sebagai rasa hormat sesama blogger. Silahkan copy scriptnya dan pasang di mana related posts ini ingin muncul sesuai keinginan Anda.
<b:if cond='data:blog.pageType == "item"'>
   <div class='similiar'>
    <!-- ************http://hoctro.blogspot.com*****Jan,2007************* -->
    <!-- ************Related Articles by Labels - Take Two************* -->

    <!--
     Modified by JackBook.Com to make it easier to use. 
    1. Just copy and paste, and done!
    2. The current article will also be listed, now it's no more.
    -->

    <div class='widget-content'>
    <h3>Related Posts by Categories</h3>
    <div id='data2007'/><br/><br/>
     <div id='hoctro'>
      Widget by <u><a href='http://hoctro.blogspot.com'>Hoctro</a></u>
     </div>
     <script type='text/javascript'>

     var homeUrl3 = &quot;<data:blog.homepageUrl/>&quot;;
     var maxNumberOfPostsPerLabel = 4;
     var maxNumberOfLabels = 10;

     maxNumberOfPostsPerLabel = 100;
     maxNumberOfLabels = 3;


     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(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>
Demikian artikel cara membuat related posts multi label. Selamat mencoba semoga berhasil.

Sign up here with your email address to receive updates from this blog in your inbox.

2 Responses to "Membuat Related Posts Multi Label"