http://dperexvatov.blogspot.com/2010/10/blogspot.html
Как сделать похожие по тематике посты на Blogspot
Вывод похожих по тематике постов в Блогспот. Многие из вас заметили, что блоггеры очень часто используют в конце своего поста(записи) так сказать виджет(модуль, скрипт) который отображает похожие по тематике посты блога. Это очень полезно, случайный посетитель может дочитав до конца перейти к похожим записям и вполне возможно стать вашим постоянным посетителем. Вот и на блоге ЭВМщик я реализовать данную фичу :)
Заходим в админку блога, раздел «Макет», меню «Изменить HTML». Ставим галочку «Расширить шаблоны виджета» в верхнем правом углу текстового поля с кодом. Находим в коде строку:
<data:post.body/>Она отвечает за вывод сообщений блога. После нее добавляем такой код:
<b:if cond='data:blog.pageType == "item"'> <div class='similiar'> <p/> <div class='widget-content'> <span><b>Похожие по тематике посты - еще почитать:</b></span> <div id='data2007'/> <div id='hoctro'><u><a href='http://dperexvatov.blogspot.com/' style='text-decoration:underline; color:white'>.</a></u></div> <script type='text/javascript'> var homeUrl3 = "<data:blog.homepageUrl/>"; var maxNumberOfPostsPerLabel = 100; var maxNumberOfLabels = 10; maxNumberOfPostsPerLabel = 6; maxNumberOfLabels = 1; function listEntries10(json) { var ul = document.createElement('ul'); var maxPosts = (json.feed.entry.length <= maxNumberOfPostsPerLabel) ? json.feed.entry.length : maxNumberOfPostsPerLabel; for (var i = 0; i < maxPosts; i++) { var entry = json.feed.entry[i]; var alturl; for (var k = 0; k < entry.link.length; k++) { if (entry.link[k].rel == 'alternate') { alturl = entry.link[k].href; break; } } var li = document.createElement('li'); var a = document.createElement('a'); 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 < json.feed.link.length; l++) { if (json.feed.link[l].rel == 'alternate') { var raw = json.feed.link[l].href; var label = raw.substr(homeUrl3.length+13); var k; for (k=0; k<20; k++) label = label.replace("%20", " "); var txt = document.createTextNode(label); // var h = document.createElement('b'); // h.appendChild(txt); var div1 = document.createElement('div'); // div1.appendChild(h); div1.appendChild(ul); document.getElementById('data2007').appendChild(div1); } } } function search10(query, label) { var script = document.createElement('script'); script.setAttribute('src', query + 'feeds/posts/default/-/' + label + '?alt=json-in-script&callback=listEntries10'); script.setAttribute('type', 'text/javascript'); 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 = "<data:label.name/>"; var test = 0; for (var i = 0; i < labelArray.length; i++) if (labelArray[i] == textLabel) test = 1; if (test == 0) { labelArray.push(textLabel); var maxLabels = (labelArray.length <= maxNumberOfLabels) ? labelArray.length : maxNumberOfLabels; if (numLabel < maxLabels) { search10(homeUrl3, textLabel); numLabel++; } } </b:loop> </b:loop> </script> </div> </div> </b:if>
Сохраняем и радуемся, так же можете еще покопаться в коде и что нибудь подстроить под себя :)
Комментариев нет:
Отправить комментарий