【问题标题】:retrieve list of all labels in blogger检索博客中所有标签的列表
【发布时间】:2017-05-22 00:20:21
【问题描述】:

有没有办法使用 gdata api 来检索博主中所有标签的列表?

我需要根据该列表创建一个菜单,但不能简单地列出所有帖子并获取它,因为它是一个繁忙的博客并且有超过 2000 个帖子。

【问题讨论】:

    标签: javascript gdata blogger


    【解决方案1】:

    这是使用 json 调用获取标签列表的最简单方法:

    <script>
        function cat(json){ //get categories of blog & sort them
            var label = json.feed.category;
            var lst=[];
            for (i=0; i<label.length; i++){
              lst[i] = label[i].term ;  
            }
            alert(lst.sort());  //use any sort if you need that 
        }
    
    </script>
    
    <script src="http://yourblog.blogspot.com/feeds/posts/summary?alt=json&max-results=0&callback=cat"></script>
    

    只需使用您的博客网址。

    【讨论】:

    【解决方案2】:

    很简单,我给你两种方法

    1. 使用 Javascript API 首先,你必须使用:

      <script type="text/javascript" src="http://www.google.com/jsapi"></ script> <script type='text/javascript'>
      google.load("gdata", "1.x", { packages : ["blogger"] });
      </script>

      其次,您可以使用下面的代码来检索标签

      postRoot.entry.getCategories()[i].getTerm()

      更多教程可以阅读http://www.threelas.com/2012/05/how-to-retrieve-posts-using-blogger.htmlhttp://www.threelas.com/2012/04/basic-blogger-javascript-api.html

    2. 使用 JSON 使用json,如果你想学习如何检索标签列表,使用这个对象

      json.feed.entry[i].category[j].term

      更多详细教程,请阅读http://www.threelas.com/2012/02/basic-blogger-json-feed-api.htmlhttp://www.threelas.com/2012/09/blogger-json-feed-with-jquery-ajax.html

    【讨论】:

      【解决方案3】:

      我发现的方法是使用 Blogger 自己的名为 Labels 的小工具。它在一些无序列表(ul)和链接(a)中打印标签列表及其使用计数。您可以在使用 javascript 加载标签后从中提取标签,如下所示:

      $(".list-label-widget-content a").each(function (i, el) {
          var labelText = $(el).text();
          // do what you want with the labels
      });
      

      最后,移除 Labels div 元素 (&lt;div class='widget Label' id='Label1'&gt;)

      【讨论】:

        【解决方案4】:

        博主自己提供了用于服务器相同目的的小部件。

        Widget 提供各种选项,例如 -

        1. 您可以显示所有标签或从现有列表中选择
        2. 您可以按字母顺序或按标签使用次数(频率)对标签进行排序。
        3. 您可以选择将它们显示为列表或云(混乱)。

        您可以在我的博客中看到相同的内容 - Link

        【讨论】:

          【解决方案5】:

          我没有看到获取博客中标签列表的方法,但您可以检索所有帖子(https://developers.google.com/blogger/docs/2.0/json/reference/posts/list ) 并检查每个人的labels 字段:https://developers.google.com/blogger/docs/2.0/json/reference/posts#resource

          【讨论】:

          • 正如我在问题中所说,我不能这样做,因为帖子太多。
          • 另一个问题是 Google 不允许您通过他们的 API 检索 所有 帖子。如果您尝试使用 maxResults 参数,例如 100,它会改为给您一个 invalidValue 错误。像 20 这样的东西可以正常工作。
          【解决方案6】:

          首先在控制台中通过以下代码添加JQuery。

          var jq = document.createElement('script');
          jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js";
          document.getElementsByTagName('head')[0].appendChild(jq);
          

          // ... 给脚本加载时间,然后输入(或参见下面的非等待选项)

             jQuery.noConflict();
          

          完成此操作后,我们可以利用 JQuery 并获取标签列表

          现在我所做的将适用于 Blogger Theme Notable 和新添加的 Blogger 主题。

          通常在这些主题中,您会在页面的右侧工具菜单中看到标签。

          所以你需要它点击标签并点击显示更多。

          现在打开浏览器调试控制台并声明和变量。

          var str = "";
          

          现在运行下面的两个代码

          1. $('.first-items .label-name').each(function(){str = str + ", "+($(this).text())})
          2. $('.remaining-items .label-name').each(function(){str = str + ", "+($(this).text())})
          3. str
          

          您将以逗号(;)分隔格式获得的所有标签。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多