SOFTWARE TIPS

What most of the experts skip...

TIP

. Avoid 'Overburn CD' option when Writing to any CD. Sometimes the data may not be read.

How to show related posts by category in blogger  

 

When a couple of Related posts are shown below the current post, it aptly shows the real and related stuff to the user so that the user could find all the necessary stuff especially of HIS INTEREST. This certainly drives the max. no. of page impressions.

Follow these steps

Log in to Blogger
Go to Layout, and click on "Edit HTML" tab. Check “Expand Widget Templates”, now find (CTRL+F) this code in the template:

 

<data:post.body/>

Copy and paste the below code after the above code.

 

<b:if cond='data:blog.pageType == &quot;item&quot;'>
            <div class='similar'>
                <div class='widget-content'>
                <h3>Related Posts</h3>
                <div id='data2007'/><br/><br/>
                    <div id='hoctro'>
                    </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>

 

Now to test it, click any of the post title and check at the bottom of the post for Related posts by categories.

 

Features:

  • Above code is useful only when 3 nos. related categories are to be shown.
  • For better results change the code in red  to 10.
  • To check the functionality and if you dont see the related posts by categories in this blog , CLICK the post title and check it.

Read More...
AddThis Social Bookmark Button