Google+ Как добавить скрипт похожих постов в ваш блог? : Бизнес-центр Татьяны Ошариной

 

▼ Создание блога на Blogger

Практический тренинг


 

      ▼ Создай страницу подписки!         

Практический

тренинг


 

▼ Школа-студия «Вдохновение»  

Регистрация


 

▼ Как создать сайт на WordPress?

Практический

тренинг


 

4.11.2014

Как добавить скрипт похожих постов в ваш блог?

Добрый день, друзья. Сегодня хочу показать вам, как поставить в ваш блог, созданный на бесплатной платформе Blogger.com, скрипт похожих постов. Похожие посты находятся по ярлыкам, или рубрикам, как у меня на блоге. Скрипт, о котором я говорю, оформлен в виде отдельного виджета, который
встраивается внутрь основного виджета блога, ответственного за отражение содержимого сообщений. Если вы выполните правильно все рекомендации, то список похожих постов будет располагаться сразу же после вашего сообщения и будет виден вашим читателям.

Как добавить скрипт?
В административной панели блога поочерёдно нажимаем вкладки: «Шаблон» - «Изменить HTML».
В открывшемся HTML-коде находим строку  <data:post.body/>. После этого кода ставим указанный ниже скрипт:
==============================================
<!-- Скрипт "Связанные статьи из этой категории." -->
<!-- (c) http://izhurnal.blogspot.com/ -->

        <b:if cond='data:blog.pageType == &quot;item&quot;'>
        <b:if cond='data:post.labels'>
            <div class='simposts'>

                <div class='widget-content'>
                <br/>
                  <div id='simpostsdata350471'></div>
                  <div id='simpostsdata350470'></div><br/>
                    <script type='text/javascript'>

                    /* Настройки скрипта. */

                    var headerN = &quot;Похожие статьи:&quot;; /* Заголовок виджета, когда в нём отображается более чем одна метка. */
                    var header1 = &quot;Еще статьи из категории \&quot;__LABEL__\&quot;:&quot;;  /* Заголовок виджета, когда в нём отображается одна метка. Если в заголовке есть слово __LABEL__, то вместо него будет подставлено имя метки. */
                    var header0 = &quot;&quot;; /* Текст, выводимый если нет ни одной метки и ссылки. */

                    var maxNumberOfPostsPerLabel = 5; /* Максимальное число постов, отображаемых для каждой метки. */
                    var maxNumberOfLabels = 4;      /* Максимальное число отображаемых меток. */
                    var excludeEmptyLabels = true;  /* Скрывать ли метки, для которых нет подходящих постов. true - скрывать, false - отображать. */
                    var excludeLabels = []; /* Метки, которые не следует отображать. */

                    /* Смена отображаемых имён.
                       Здесь перечисляем соответствия реального имени метки и названия, которое будет показано на странице.
                       Если для двух меток указать одно название, они при отображении склеятся в одну метку.
                       Если метка здесь не перечисляется, то отображается под своим настоящим названием.
                    */
                    var renameLabels = {
                    };

                    /* Конец настроек скрипта. */

                    var homeUrl3 = &quot;<data:blog.homepageUrl/>&quot;; /* Адрес блога, откуда берём список постов. */

                    function is_in(item, array) {
                      for (k in array) {
                        if (typeof array[k] == &quot;function&quot;) continue;
                        if (array[k] == item) return true;
                      }
                      return false;
                    }

                    function label_title(label) {
                      if (renameLabels[label])
                        return renameLabels[label];
                      return label;
                    }

                    totalLabels = 0;
                    receivedReplies = 0;
                    var receivedItems = [];

                    var k_label;

                    function labelReceived() {
                      receivedReplies++;

                      if (receivedReplies != totalLabels)
                        return;

                      var labelCount = 0;
                      for (k_label in receivedItems) {
                        if (typeof receivedItems[k_label] == &quot;function&quot;) continue;
                        var items = receivedItems[k_label];
                        if (items.length == 0 &amp;&amp; excludeEmptyLabels)
                          continue;
                        labelCount++;
                      }

                      var labelCount1 = 0;
                      for (k_label in receivedItems) {
                        if (typeof receivedItems[k_label] == &quot;function&quot;) continue;
                        var items = receivedItems[k_label];

                        if (items.length == 0 &amp;&amp; excludeEmptyLabels)
                          continue;

                        var ul = document.createElement(&#39;ul&#39;);
                        var itemsCount = 0;
                        for (var k_item in items) {
                          if (typeof items[k_item] == &quot;function&quot;) continue;
                          var item = items[k_item];
                          var li = document.createElement(&#39;li&#39;);
                          var a = document.createElement(&#39;a&#39;);
                          a.href = item.href;
                          var txt = document.createTextNode(item.title);
                          a.appendChild(txt);
                          li.appendChild(a);
                          ul.appendChild(li);
                          itemsCount++;
                          if (itemsCount == maxNumberOfPostsPerLabel)
                            break;
                        }
                       
                        var txt = document.createTextNode(k_label);
                        var h = document.createElement(&#39;b&#39;);
                        h.appendChild(txt);
                        var div1 = document.createElement(&#39;div&#39;);
                        if (!(labelCount == 1 &amp;&amp; header1.search &amp;&amp; header1.search(/(LABEL)/) != -1))
                          div1.appendChild(h);
                        div1.appendChild(ul);
                        document.getElementById(&#39;simpostsdata350470&#39;).appendChild(div1);

                        labelCount1++;
                        if (labelCount1 == maxNumberOfLabels)
                          break;
                      }

                      var txt;
                      if (labelCount == 1 &amp;&amp; header1)
                        txt = document.createTextNode(header1.replace(&quot;__LABEL__&quot;, k_label));
                      else if (labelCount)
                        txt = document.createTextNode(headerN);
                      else if (header0)
                        txt = document.createTextNode(header0);
                      if (txt)
                      {
                        var h = document.createElement(&quot;h4&quot;);
                        h.appendChild(txt);
                        document.getElementById(&#39;simpostsdata350471&#39;).appendChild(h);
                      }
                    }

                    function receiveReply_123(json) {
                      var label = &quot;&quot;;
                      for (var l = 0; l &lt; json.feed.link.length; l++) {
                        if (typeof json.feed.link[l] == &quot;function&quot;) continue;
                        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;);
                          label = decodeURI(label);
                          break;
                        }
                      }
                      var labelTitle = label_title(label);
                      if (typeof receivedItems[labelTitle] != &quot;object&quot;)
                        receivedItems[labelTitle] = [];

                      for (var k in json.feed.entry) {
                        var entry = json.feed.entry[k];
                        if (typeof entry == &quot;function&quot;) continue;
                        var href = &quot;&quot;;
                        for (var kl in entry.link) {
                          if (typeof entry.link[kl] == &quot;function&quot;) continue;
                          if (entry.link[kl].rel == &quot;alternate&quot;) {
                            href = entry.link[kl].href;
                            break;
                          }
                        }

                        if(href != &quot;&quot; &amp;&amp; href != location.href.split(new RegExp("\\?|\\#"))[0]) {
                          var item = { &quot;href&quot; : href, &quot;title&quot; : entry.title.$t};
                          receivedItems[labelTitle].push(item);
                        }
                      }

                      labelReceived();

                    }
                    function sendQueryForLabel(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=receiveReply_123&amp;max-results=&#39;+maxNumberOfPostsPerLabel);
                      script.setAttribute(&#39;type&#39;, &#39;text/javascript&#39;);
                      document.documentElement.firstChild.appendChild(script);
                    }

                    var parsedlabels = [];
                    var labelsCount = 0;

                    function list_items(textLabel) {
                      if (labelsCount &gt;= maxNumberOfLabels ||
                          is_in(textLabel, excludeLabels) ||
                          is_in(textLabel, parsedlabels)) {
                        labelReceived();
                        return;
                      }
                      labelsCount++;
                      parsedlabels.push(textLabel);
                      sendQueryForLabel(homeUrl3, textLabel);
                    }
                    <b:loop values='data:posts' var='post'>
                      <b:loop values='data:post.labels' var='label'>
                        totalLabels++;
                      </b:loop>
                    </b:loop>
                    <b:loop values='data:posts' var='post'>
                      <b:loop values='data:post.labels' var='label'>
                        list_items(&quot;<data:label.name/>&quot;);
                      </b:loop>
                    </b:loop>
                    </script>

                </div>

            </div>
        </b:if>
        </b:if>

<!-- Конец скрипта "Связанные статьи из этой категории." -->

==================================================
        Сохраните настройки, обновите страницу, перейдите в сообщение вашего блога и посмотрите, встал ли виджет «Похожие посты на блоге» (отображается в соответствии с вашими рубриками или ярлыками.  


Воспользуйтесь qwertyPAY - Агрегатором партнёрских программ!



1 комментарий :

  1. Мне так понравился этот скрипт! Я просто сама удивляюсь тому, что сделала. После моих постов появляется список статей по теме поста. Посмотрите выше моего комментария! Разве не здорово!

    ОтветитьУдалить