АРМАДА
Блогспот. Related Posts.
Новая тема Написать ответ

phillzz
Свой
Зарегистрирован: 22.08.2007
Сообщений: 62
Обратиться по нику
# Добавлено:Вт Янв 22, 2008 12:44 pmДобавить в избранноеОтветить с цитатой
Блогеры-wordpress, часто когда пытаются доказать что blogspot какашка и им ваще нельзя пользоваться упоминают, что на нём нельзя создать related posts, это не так.

Шаг 1

Логинемся. Заходим в раздел темплейтов, и тыкаем закладочку "изменить html" (edit html)
Самое первое что нужно сделать, это бэкап. Для того жмём "загрузить шаблон" (Download Full Template). сохраняем.
Ставим галочку у надписи "Расширить шаблоны виджета" (Expand Widget Templates.)

Шаг 2

жмем ctrl+f и ищем вот такой фрагмент
Код:
<data:post.body/>




после этого копируем вот этот код
Код:
      <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. Now, users don't need to change anything to use this widget. 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/>

               <script type='text/javascript'>

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

               maxNumberOfPostsPerLabel = 100;
               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(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>


и вставляем его сразу после <data:post.body/>
Кстати можно вставить <data:post.body/> и в <p></p> к примеру, в общем будьте креативны.

Ну и наконец сохраняем темплейт, рефрешим любую страничку со статьёй на блоге и наслаждаемся.

ps. возможно кому будет интересно, related post дёргается из ярлыков (label) статей. если вы проявите немножко усердия и посмотрите код вы сможете настроить и количесвто ярлыков из которых дёргать посты,и количество постов под каждым ярлыком. Для этого не нужно быть програмистом, просто нужно быть внимательным. Удачи.

pps. в приведенном коде я убрал часть кода содержащий ссылки на авторов скрипта, если для вас это принципиально скопируйте код отсюда
http://lifewg.googlepages.com/related-post-on-blogger.txt
ну и собственно автор материала jackbook
Новая тема Написать ответ    ГЛАВНАЯ ~ СОЦИАЛЬНЫЕ СЕТИ И БЛОГИ

Перейти:  





Генеральный спонсор



Партнеры