{"id":810,"date":"2026-08-14T22:53:38","date_gmt":"2026-08-14T22:53:38","guid":{"rendered":"https:\/\/ks-sp.com\/?page_id=810"},"modified":"2026-08-27T15:07:46","modified_gmt":"2026-08-27T15:07:46","slug":"favorites","status":"publish","type":"page","link":"https:\/\/ks-sp.com\/?page_id=810","title":{"rendered":"\u304a\u6c17\u306b\u5165\u308a\u7269\u4ef6\u4e00\u89a7"},"content":{"rendered":"\n<div id=\"ks-fudo-fav-page-container\" style=\"max-width: 960px; margin: 20px auto; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\">\n  <h2 style=\"font-size: 24px; color: #333; margin-bottom: 20px;\">\u304a\u6c17\u306b\u5165\u308a\u7269\u4ef6\u4e00\u89a7<\/h2>\n  <p style=\"font-size: 16px; color: #555; margin-bottom: 20px;\">\u3053\u308c\u307e\u3067\u306b\u300c\u304a\u6c17\u306b\u5165\u308a\u300d\u306b\u8ffd\u52a0\u3057\u305f\u7269\u4ef6\u306e\u4e00\u89a7\u3067\u3059\u3002\u6c17\u306b\u306a\u308b\u7269\u4ef6\u306f\u307e\u3068\u3081\u3066\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002<\/p>\n  <div id=\"ks-fudo-fav-list\" style=\"display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px;\"><\/div>\n  <div id=\"ks-fudo-no-fav\" style=\"display: none; text-align: center; padding: 60px 0; color: #888; font-size: 18px; background: #f9f9f9; border-radius: 12px;\">\u304a\u6c17\u306b\u5165\u308a\u306b\u8ffd\u52a0\u3055\u308c\u305f\u7269\u4ef6\u306f\u307e\u3060\u3042\u308a\u307e\u305b\u3093\u3002<\/div>\n<\/div>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n  var listContainer = document.getElementById('ks-fudo-fav-list');\n  var noFavMsg = document.getElementById('ks-fudo-no-fav');\n  var favStorageKey = 'ks_fudo_real_favorites';\n  var favs = [];\n  try {\n    favs = JSON.parse(localStorage.getItem(favStorageKey)) || [];\n  } catch(e) { favs = []; }\n\n  if (favs.length === 0) { noFavMsg.style.display = 'block'; return; }\n\n  favs.forEach(function(url) {\n    var card = document.createElement('div');\n    card.style.cssText = 'background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 6px rgba(0,0,0,0.05); display: flex; flex-direction: column;';\n    \n    card.innerHTML = '<div class=\"fav-image-box\" style=\"width: 100%; height: 210px; background: #f8fafc; display: flex; align-items: center; justify-content: center; overflow: hidden; position: relative;\"><span style=\"color:#a0aec0; font-size:13px;\">\u753b\u50cf\u8aad\u8fbc\u4e2d...<\/span><\/div>' +\n                     '<div style=\"padding: 16px; flex-grow: 1; display: flex; flex-direction: column; justify-content: space-between;\">' +\n                     '<h3 class=\"fav-title\" style=\"font-size: 15px; margin: 0 0 12px 0; color: #2d3748; line-height: 1.4; font-weight: 600;\">\u8aad\u307f\u8fbc\u307f\u4e2d...<\/h3>' +\n                     '<div style=\"display:flex; gap:10px; border-top: 1px solid #edf2f7; padding-top: 12px;\">' +\n                     '<a href=\"' + url + '\" style=\"background:#00a86b; color:#fff; padding:8px 12px; border-radius:6px; text-decoration:none; font-weight:bold; font-size:13px; text-align:center; flex:1;\">\u8a73\u7d30\u3092\u898b\u308b<\/a>' +\n                     '<button class=\"remove-fav-btn\" data-url=\"' + url + '\" style=\"background:#f7fafc; border:1px solid #e2e8f0; color:#e53e3e; padding:8px 12px; border-radius:6px; cursor:pointer; font-size:13px;\">\u524a\u9664<\/button>' +\n                     '<\/div><\/div>';\n    listContainer.appendChild(card);\n\n    var titleElement = card.querySelector('.fav-title');\n    var imageBox = card.querySelector('.fav-image-box');\n\n    fetch(url)\n      .then(function(response) { return response.text(); })\n      .then(function(html) {\n        var parser = new DOMParser();\n        var doc = parser.parseFromString(html, 'text\/html');\n        \n        \/\/ 1. \u30bf\u30a4\u30c8\u30eb\u6574\u5f62\uff081Knew \u3084 \u672b\u5c3e\u306e new\/up \u3092\u9664\u53bb\uff09\n        var pageTitle = '';\n        var h1Tag = doc.querySelector('h1.entry-title') || doc.querySelector('h1');\n        if (h1Tag) {\n          pageTitle = h1Tag.innerText.trim();\n          pageTitle = pageTitle\n            .replace(\/1Knew\/gi, '1K')\n            .replace(\/(?:new|NEW|up|UP|\\s)+$\/gi, '')\n            .trim();\n        }\n        titleElement.textContent = pageTitle || '\u7269\u4ef6\u8a73\u7d30\u30da\u30fc\u30b8';\n\n        \/\/ 2. \u7269\u4ef6\u753b\u50cf\uff08\u5916\u89b3\uff09\u306e\u62bd\u51fa\n        var selectedImgSrc = '';\n        var allImgs = Array.from(doc.querySelectorAll('img'));\n\n        \/\/ \u2460 alt\u5c5e\u6027\u3084title\u5c5e\u6027\u306b\u300c\u5916\u89b3\u300d\u304c\u5165\u3063\u3066\u3044\u308b\u753b\u50cf\u3092\u512a\u5148\u53d6\u5f97\n        var gaikanImg = allImgs.find(function(img) {\n          var alt = img.getAttribute('alt') || '';\n          var title = img.getAttribute('title') || '';\n          return alt.indexOf('\u5916\u89b3') !== -1 || title.indexOf('\u5916\u89b3') !== -1;\n        });\n\n        if (gaikanImg) {\n          selectedImgSrc = gaikanImg.src;\n        } else {\n          \/\/ \u2461 \u7121\u3044\u5834\u5408\u306f\u30ed\u30b4\u3084\u9593\u53d6\u308a\u3092\u9664\u5916\u3057\u3066\u53d6\u5f97\n          var filteredImg = allImgs.find(function(img) {\n            var src = img.src || '';\n            var alt = img.getAttribute('alt') || '';\n            var title = img.getAttribute('title') || '';\n            if (!src) return false;\n\n            var isInvalid = \n              src.includes('avatar') || \n              src.includes('logo') || \n              src.includes('icon') || \n              src.includes('theme') || \n              src.includes('plugin') ||\n              src.includes('default') ||\n              alt.includes('\u9593\u53d6') || \n              alt.includes('\u9593\u53d6\u308a') ||\n              title.includes('\u9593\u53d6') ||\n              title.includes('\u9593\u53d6\u308a') ||\n              src.includes('madori');\n\n            return !isInvalid && (src.includes('\/uploads\/') || src.includes('wp-content'));\n          });\n\n          if (filteredImg) {\n            selectedImgSrc = filteredImg.src;\n          }\n        }\n        \n        \/\/ \u2605 \u9ad8\u753b\u8cea\u5316 \uff0b \u5168\u4f53\u8868\u793a\uff08\u30c8\u30ea\u30df\u30f3\u30b0\u306a\u3057\uff09\u51e6\u7406\n        if (selectedImgSrc) {\n          selectedImgSrc = selectedImgSrc.replace(\/-\\d+x\\d+(\\.(?:jpg|jpeg|png|webp|gif))\/gi, '$1');\n          imageBox.innerHTML = '<img decoding=\"async\" src=\"' + selectedImgSrc + '\" alt=\"\" style=\"max-width: 100%; max-height: 100%; object-fit: contain; display: block;\">';\n        } else {\n          imageBox.innerHTML = '<span style=\"color:#cbd5e0; font-size:13px;\">\u753b\u50cf\u306a\u3057<\/span>';\n        }\n      })\n      .catch(function() {\n        titleElement.textContent = '\u7269\u4ef6\u8a73\u7d30\u30da\u30fc\u30b8';\n        imageBox.innerHTML = '<span style=\"color:#cbd5e0; font-size:13px;\">\u8aad\u8fbc\u5931\u6557<\/span>';\n      });\n  });\n\n  listContainer.addEventListener('click', function(e) {\n    if (e.target && e.target.classList.contains('remove-fav-btn')) {\n      e.preventDefault();\n      var urlToRemove = e.target.getAttribute('data-url');\n      var newFavs = favs.filter(function(item) { return item !== urlToRemove; });\n      localStorage.setItem(favStorageKey, JSON.stringify(newFavs));\n      location.reload();\n    }\n  });\n});\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>\u304a\u6c17\u306b\u5165\u308a\u7269\u4ef6\u4e00\u89a7 \u3053\u308c\u307e\u3067\u306b\u300c\u304a\u6c17\u306b\u5165\u308a\u300d\u306b\u8ffd\u52a0\u3057\u305f\u7269\u4ef6\u306e\u4e00\u89a7\u3067\u3059\u3002\u6c17\u306b\u306a\u308b\u7269\u4ef6\u306f\u307e\u3068\u3081\u3066\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 \u304a\u6c17\u306b\u5165\u308a\u306b\u8ffd\u52a0\u3055\u308c\u305f\u7269\u4ef6\u306f\u307e\u3060\u3042\u308a\u307e\u305b\u3093\u3002<\/p>\n","protected":false},"author":1,"featured_media":535,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"sns_share_botton_hide":"","vkExUnit_sns_title":"","_vk_print_noindex":"","sitemap_hide":"","vkExUnit_sitemap":"","_veu_custom_css":"","veu_display_promotion_alert":"","_exclude_from_list_pages":"","vkExUnit_childPageIndex":"","vkExUnit_pageList_ancestor":"","vkExUnit_contact_enable":"","_lightning_design_setting":[],"footnotes":""},"class_list":["post-810","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"veu_head_title_object":{"title":"","add_site_title":""},"_links":{"self":[{"href":"https:\/\/ks-sp.com\/index.php?rest_route=\/wp\/v2\/pages\/810","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ks-sp.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ks-sp.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ks-sp.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ks-sp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=810"}],"version-history":[{"count":16,"href":"https:\/\/ks-sp.com\/index.php?rest_route=\/wp\/v2\/pages\/810\/revisions"}],"predecessor-version":[{"id":885,"href":"https:\/\/ks-sp.com\/index.php?rest_route=\/wp\/v2\/pages\/810\/revisions\/885"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ks-sp.com\/index.php?rest_route=\/wp\/v2\/media\/535"}],"wp:attachment":[{"href":"https:\/\/ks-sp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=810"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}