Related posts, blogger hack, связанные ссылки, похожие сообщения, blogger widget
Related posts - довольно удобный плагин для Wordpress, который позволяет задержать читателя на блоге, предоставляя ссылки на другие похожие публикации. Подбор аналогичных публикаций осуществляется по разным критериям и далеко не всегда верный. Как известно, установка дополнительных модулей не предусмотрена на Blogspot.com. Поэтому предлагаемое решение использует другой принцип. В его основе заложена выборка по рубрикам или категориям (labels). Данный хак, реализованный в виде виджета на java script, добавляет в конец публикации ссылки на другие посты из тех же рубрик. Вы можете видеть как это работает на примере этого блога. Ссылки показываются только на странице публикации, вместе с комментариями и другой информацией, имеющей отношение непосредственно к определенной статье.
Установка
Зайдите в меню редактирования шаблона, в раздел "изменить HTML". Включите пункт "Расширить шаблоны виджета" и обязательно сохраните копию шаблона, прежде чем вносить в него изменения. Найдите в коде тег <data:post.body/>. Сразу за этим тегом вставьте следущий код:
<!-- Связанные статьи из этой категории. Виджет. Начало --> <b:if cond='data:blog.pageType == "item"'> <div class='similiar'> <div class='widget-content'> <h4>Предлагаю ознакомиться с аналогичными статьями:</h4> <div id='data2007'/><br/><br/> <script type='text/javascript'> var homeUrl3 = "<data:blog.homepageUrl/>"; var maxNumberOfPostsPerLabel = 5; var maxNumberOfLabels = 3; maxNumberOfPostsPerLabel = 6; maxNumberOfLabels = 3; 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(decodeURI(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> <!-- Конец кода: Связанные статьи из этой категории. Виджет. -->
Вместо текста "Предлагаю ознакомиться с аналогичными статьями" можете использовать свой вариант. Сохраните внесенные в шаблон изменения.
Примечание
В случае, если статья единственная в рубрике, будет отображаться текст виджета без ссылок. Если рубрик очень много, будут показаны не все.
Данный виджет найден на просторах зарубежного Интернета. Автор публикации любезно согласился модифицировать код для правильного отображения кодировки русскоязычных названий рубрик.
Здравствуйте!
ОтветитьУдалить------------------------------------------------
Между:
Предлагаю озна.....алогичными статьями:
(большой разрыв)
Блоги
(большой разрыв)
------------------------------------------------
Смотрится как то разорвано:список статей где-то внизу-связанность плохая.Я у себя(у меня такой же шаблон, только голова оранжевая)
убрал br br в коде
----------------------------------------------
Предлагаю ознакомиться с аналогичными статьями:
div id='data2007'
----------------------------------------------
но это не помогло,осталось всё по прежнему.
Что не так?
Данный отступ изменяется стилем заголовка h4. Измените HTML код шаблона, добавив к стилям «h4 {margin: 0;}» (само собой без кавычек). Для управления только верхним полем используйте свои значения, например «margin: 5px 0 0 0;»
ОтветитьУдалитьЛично мне эти изменения не понравились.
Что-то не работает.
ОтветитьУдалитьПример работоспособности расположен на этом блоге.
ОтветитьУдалитьЧто-то не понятно, что именно не работает?
Никакой ошибки не выдаётся - просто никаких ссылок на похожие сообщения под постами не появляется.
ОтветитьУдалитьСхема определяет связанность постов по одному критерию - метке (рубрике, label). Если нет постов из этой же рубрики (с такой же меткой), то ничего и не выводится. Это первая причина.
ОтветитьУдалитьВ том-то и дело, что они есть.
ОтветитьУдалитьПациента сложно лечить вслепую.
ОтветитьУдалитьНа таинственный сайт с неработающим скриптом можно посмотреть?
Извиняюсь, тупо тормознул:
ОтветитьУдалитьЯ думал, что похожие сообщения появятся непосредственно под каждым сообщением, даже не заходя в само конкретное сообщение.
Они появились, но, само собой, если заходить в каждое сообщение по отдельности.
Можно сделать и по первому варианту, но только код надо вставлять в другое место и немного его подправить. Но это уже материал для отдельной статьи :-)
ОтветитьУдалитьНаш диспут подсказал мне новую идею использования форума для решения вопросов, обсуждающихся на этом блоге.
Так что вам спасибо!
Да незачто =)
ОтветитьУдалитьвыдаёт ошибку bX-btce2j... ничего не пойму... почему не получается??
ОтветитьУдалитьПохоже на глюк, который появляется при смене кода шаблона Блогспот. В определенное время суток сменить дизайн на Блоггере не представляется возможным по непонятным причинам. Предлагаю попробовать вносить изменения в разное время суток.
ОтветитьУдалитьВот и у меня не работает...
ОтветитьУдалитьМожет через время начнёт...
Для всех шаблонов код подходит?
сайт этот --->> http://www.kinodok.co.cc/
Методы продвижения блогов и сайтов находят новые ниши... Ничто не стоит на месте, и это не может не радовать, ведь движение это жизнь.
ОтветитьУдалить