【问题标题】:How can I manage sitemaps in Kentico Cloud?如何在 Kentico Cloud 中管理站点地图?
【发布时间】:2019-05-13 13:19:04
【问题描述】:

曾经有站点地图功能,但已被弃用。建议使用分类法作为替代,但是当我从 API 请求项目时,分类法元素缺少层次结构。如何在网站结构中搜索代表父页面的项目?谢谢。

【问题讨论】:

    标签: sitemap taxonomy kentico-kontent


    【解决方案1】:

    您仍然可以使用 Delivery API 做到这一点。首先,您需要像组织站点地图一样创建和组织分类组。以以下站点地图为例:

    • 首页
    • 关于
      • 我们的团队
        • 管理
        • 联系我们
      • 使命与价值观

    这是分类法在 Kentico Cloud 中的样子:

    您的商品模型需要使用分类元素创建,该元素可用作站点地图位置选择器。当您从项目中检索此元素时,它将为您提供与该项目相关联的术语列表。如果您在项目中勾选两个术语(联系我们,我们的团队),则该元素在 API 中的外观如下:

    {
      "item": {
        "system": {
          "id": "8a9e7010-c79b-41c5-a0bc-4f20c9c233b8",
          "name": "Example item - contact form",
          "codename": "example_item___contact_form",
          "language": "default",
          "type": "example_content_model",
          "sitemap_locations": [],
          "last_modified": "2019-05-13T08:20:50.3173519Z"
        },
        "elements": {
          "sitemap": {
            "type": "taxonomy",
            "name": "Sitemap",
            "taxonomy_group": "sitemap",
            "value": [
              {
                "name": "Contact Us",
                "codename": "contact_us"
              },
              {
                "name": "Our team",
                "codename": "our_team"
              }
            ]
          }
        }
      },
      "modular_content": {}
    }
    

    如您所见,您会获得有关分类组代号的信息以及每个勾选术语的名称和代号对的平面列表。要获得层次结构,您需要进行第二次调用以检索分类组,这将产生以下结果:

    {
      "system": {
        "id": "0b4e3da2-8699-4b4d-961c-1fe912c91570",
        "name": "Sitemap",
        "codename": "sitemap",
        "last_modified": "2019-05-13T08:01:34.6109452Z"
      },
      "terms": [
        {
          "name": "Home",
          "codename": "home",
          "terms": []
        },
        {
          "name": "About",
          "codename": "about",
          "terms": [
            {
              "name": "Our team",
              "codename": "our_team",
              "terms": [
                {
                  "name": "Management",
                  "codename": "management",
                  "terms": []
                },
                {
                  "name": "Contact Us",
                  "codename": "contact_us",
                  "terms": []
                }
              ]
            },
            {
              "name": "Mission & Values",
              "codename": "mission___values",
              "terms": []
            }
          ]
        }
      ]
    }
    

    这反映了所需的层次结构。您可以将您从项目中获得的代号与您的组中分类术语的位置进行比较 - 要获取父分类术语,只需获取父 JSON 节点。如果您需要确定父项本身,可以再次调用 Delivery API 并使用数组过滤器之一来获取所有标有父站点地图位置的项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-27
      相关资源
      最近更新 更多