{"id":2773,"date":"2024-11-04T01:05:25","date_gmt":"2024-11-03T16:05:25","guid":{"rendered":"https:\/\/salamasa.com\/?page_id=2773"},"modified":"2026-08-30T22:20:45","modified_gmt":"2026-08-30T13:20:45","slug":"%e5%9b%ba%e5%ae%9a","status":"publish","type":"page","link":"https:\/\/salamasa.com\/","title":{"rendered":"\u56fa\u5b9a"},"content":{"rendered":"\n<style>\n  \/* --- \u5168\u4f53\u30fb\u30d9\u30fc\u30b9\u8a2d\u5b9a --- *\/\n  :root {\n    --primary: #0056b3;\n    --accent: #dc3545;\n    --bg-color: #f4f6f9;\n    --text-color: #333;\n  }\n  .salamasa-portal {\n    font-family: 'Helvetica Neue', Arial, sans-serif;\n    max-width: 1000px;\n    margin: 0 auto;\n    color: var(--text-color);\n    background: var(--bg-color);\n    padding: 20px;\n  }\n\n  \/* --- \u30d2\u30fc\u30ed\u30fc\u30bb\u30af\u30b7\u30e7\u30f3 --- *\/\n  .hero-section {\n    background: #1a1a1a;\n    color: white;\n    text-align: center;\n    padding: 40px 20px;\n    border-radius: 12px;\n    margin-bottom: 20px; \n    position: relative;\n    overflow: hidden;\n  }\n  .hero-section h1 { font-size: 28px; margin: 0 0 10px 0; font-weight: bold; color: #fff; }\n  .hero-section p { font-size: 16px; color: #ccc; margin: 0; }\n  \n  \/* \u30cb\u30e5\u30fc\u30b9\u30c6\u30a3\u30c3\u30ab\u30fc\uff06\u8a2d\u5b9a\u30a8\u30ea\u30a2 *\/\n  .ticker-wrap { width: 100%; overflow: hidden; background-color: #000; color: white; padding: 10px 0; margin-bottom: 10px; white-space: nowrap; box-sizing: border-box; }\n  .ticker-move { display: inline-block; padding-left: 100%; animation: ticker 30s linear infinite; }\n  .ticker-move:hover { animation-play-state: paused; }\n  @keyframes ticker { 0% { transform: translate3d(0, 0, 0); } 100% { transform: translate3d(-100%, 0, 0); } }\n  .ticker-item { margin-right: 50px; font-size: 14px; font-weight: bold; color: #ffd700; text-decoration: none; }\n  \n  .news-settings { background: #fff; padding: 10px; border-radius: 4px; border: 1px solid #ddd; margin-bottom: 30px; font-size: 14px; text-align: left; }\n  .news-settings input { padding: 6px; width: 180px; border: 1px solid #ccc; border-radius: 4px; }\n  \/* \u30dc\u30bf\u30f3\u306e\u30c7\u30b6\u30a4\u30f3\uff08\u5909\u66f4\u306a\u3057\uff09 *\/\n  .news-settings button { padding: 6px 12px; background: #28a745; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 12px;}\n\n  \/* --- \u30bb\u30af\u30b7\u30e7\u30f3\u898b\u51fa\u3057 --- *\/\n  .section-title { font-size: 22px; border-bottom: 3px solid #ccc; padding-bottom: 10px; margin: 40px 0 20px 0; display: flex; align-items: center; gap: 10px; }\n\n  \/* --- \u30c4\u30fc\u30eb\u30fb\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9 --- *\/\n  .tools-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }\n  .tool-card { background: #fff; padding: 25px; border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.05); border-top: 5px solid var(--primary); transition: transform 0.2s; }\n  .tool-card:hover { transform: translateY(-5px); }\n  .tool-card.red-theme { border-top: 5px solid var(--accent); }\n  .tool-card h3 { margin: 0 0 15px 0; font-size: 20px; display: flex; align-items: center; gap: 8px; }\n  .tool-card p { font-size: 14px; color: #666; line-height: 1.6; margin-bottom: 20px; min-height: 45px; }\n  .btn { display: block; text-align: center; padding: 12px; background: var(--primary); color: white; text-decoration: none; font-weight: bold; border-radius: 4px; transition: opacity 0.2s; }\n  .btn:hover { opacity: 0.8; color: white; }\n  .btn.btn-red { background: var(--accent); }\n\n  \/* --- \u30b3\u30e9\u30e0\u30fb\u8a18\u4e8b\u30bb\u30af\u30b7\u30e7\u30f3 --- *\/\n  .articles-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }\n  .article-card { background: #fff; border-radius: 8px; overflow: hidden; border: 1px solid #e0e0e0; text-decoration: none; color: var(--text-color); display: flex; flex-direction: column; transition: box-shadow 0.2s; height: 100%; }\n  .article-card:hover { box-shadow: 0 6px 15px rgba(0,0,0,0.1); }\n  .article-thumb { width: 100%; height: 160px; background: #ddd; display: flex; align-items: center; justify-content: center; font-size: 12px; color: #999; overflow: hidden; }\n  .article-thumb img { width: 100%; height: 100%; object-fit: cover; }\n  .article-content { padding: 15px; display: flex; flex-direction: column; flex-grow: 1; }\n  .article-tag { display: inline-block; padding: 3px 8px; background: #e9ecef; color: #555; font-size: 11px; border-radius: 12px; margin-bottom: 8px; align-self: flex-start; }\n  .article-title { font-size: 16px; font-weight: bold; margin: 0 0 10px 0; line-height: 1.4; flex-grow: 1; }\n  .article-date { font-size: 12px; color: #999; margin-top: auto; }\n  \n  .loading-posts { text-align: center; padding: 30px; color: #666; font-size: 14px; width: 100%; }\n<\/style>\n\n<div class=\"salamasa-portal\">\n\n  <div class=\"hero-section\">\n    <h1 id=\"i-0\">SALAMASA.com<\/h1>\n    <p>\u7406\u4e0d\u5c3d\u306a\u4f1a\u793e\u304b\u3089\u3001\u81ea\u5206\u306e\u6642\u9593\u3068\u8cc7\u7523\u3092\u596a\u3044\u8fd4\u3059\u305f\u3081\u306e\u6b66\u5668\u5eab<\/p>\n  <\/div>\n\n  <div class=\"ticker-wrap\">\n    <div class=\"ticker-move\" id=\"top-news-ticker\">\n      <span class=\"ticker-item\">\u6700\u65b0\u306e\u30cb\u30e5\u30fc\u30b9\u3092\u53d6\u5f97\u4e2d\u2026<\/span>\n    <\/div>\n  <\/div>\n\n  <!-- \u4fee\u6b63\u7b87\u6240\uff1atype=\"button\" \u3092\u8ffd\u52a0\u3057\u3001Enter\u30ad\u30fc\u306b\u3082\u5bfe\u5fdc -->\n  <div class=\"news-settings\">\n    \ud83d\udca1 <strong>\u3042\u306a\u305f\u5c02\u7528\u30cb\u30e5\u30fc\u30b9\u8a2d\u5b9a:<\/strong> \n    <input type=\"text\" id=\"news-keyword\" placeholder=\"\u73fe\u5728\u306e\u8a2d\u5b9a: \u4ed5\u4e8b\u52b9\u7387\u5316\" onkeydown=\"if(event.key === 'Enter') saveKeywordAndFetchTop()\">\n    <button type=\"button\" onclick=\"saveKeywordAndFetchTop()\">\u4fdd\u5b58\u3057\u3066\u66f4\u65b0<\/button>\n    <span id=\"save-msg\" style=\"color: #28a745; margin-left: 10px; display: none;\">\u2705 \u4fdd\u5b58\u3057\u307e\u3057\u305f\uff01<\/span>\n  <\/div>\n\n  <h2 class=\"section-title\" id=\"i-1\">\u2699\ufe0f \u5e38\u99d0\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9 (Web Tools)<\/h2>\n  <div class=\"tools-grid\">\n    <div class=\"tool-card red-theme\">\n      <h3 id=\"i-2\">\ud83d\udd25 \u7121\u99c4\u4f1a\u8b70\u30fb\u4eba\u4ef6\u8cbb\u30bf\u30a4\u30de\u30fc<\/h3>\n      <p>\u300c\u3053\u306e\u4f1a\u8b70\u3001\u3044\u304f\u3089\u6eb6\u3051\u3066\u308b\uff1f\u300d\u3092\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u3067\u53ef\u8996\u5316\u3002\u9650\u754c\u304c\u6765\u305f\u3089\u30ef\u30f3\u30af\u30ea\u30c3\u30af\u3067\u8131\u51fa\u30c1\u30e3\u30c3\u30c8\u6587\u9762\u3092\u751f\u6210\u3059\u308b\u3001\u30b9\u30c6\u30eb\u30b9\u6a5f\u80fd\u642d\u8f09\u30bf\u30a4\u30de\u30fc\u3002<\/p>\n      <a href=\"https:\/\/salamasa.com\/?page_id=2953\" class=\"btn btn-red\">\u30c4\u30fc\u30eb\u3092\u8d77\u52d5\u3059\u308b<\/a>\n    <\/div>\n\n    <div class=\"tool-card\">\n      <h3 id=\"i-3\">\ud83d\udd0d \u51fa\u6240\u78ba\u5b9f\u30fbAI\u30ea\u30b5\u30fc\u30c1\u6a5f<\/h3>\n      <p>\u691c\u7d22\u30ad\u30fc\u30ef\u30fc\u30c9\u304b\u3089\u4e8b\u5b9f\u306b\u57fa\u3065\u3044\u305f\u6700\u65b0\u30cb\u30e5\u30fc\u30b9\u3092\u4e00\u62ec\u53d6\u5f97\u3002AI\uff08ChatGPT\uff09\u306b\u5618\u3092\u3064\u304b\u305b\u306a\u3044\u300c\u9ad8\u7cbe\u5ea6\u8981\u7d04\u30d7\u30ed\u30f3\u30d7\u30c8\u300d\u3092\u30ef\u30f3\u30af\u30ea\u30c3\u30af\u751f\u6210\u3002<\/p>\n      <a href=\"https:\/\/salamasa.com\/?page_id=2931\" class=\"btn\">\u30c4\u30fc\u30eb\u3092\u8d77\u52d5\u3059\u308b<\/a>\n    <\/div>\n  <\/div>\n\n  <h2 class=\"section-title\" id=\"i-4\">\ud83d\udcd6 \u751f\u5b58\u6226\u7565\u30b3\u30e9\u30e0 (Articles)<\/h2>\n  <div class=\"articles-grid\" id=\"wp-latest-posts\">\n    <div class=\"loading-posts\">\u6700\u65b0\u306e\u8a18\u4e8b\u3092\u8aad\u307f\u8fbc\u307f\u4e2d\u2026<\/div>\n  <\/div>\n\n<\/div>\n\n<script>\n  \/\/ --- 1. \u30ed\u30fc\u30ab\u30eb\u30b9\u30c8\u30ec\u30fc\u30b8\uff06\u30cb\u30e5\u30fc\u30b9\u81ea\u52d5\u53d6\u5f97 ---\n  async function fetchTopNews() {\n    \/\/ \u904e\u53bb\u306e\u7a7a\u30c7\u30fc\u30bf\u306a\u3069\u3092\u7dba\u9e97\u306b\u51e6\u7406\u3059\u308b\n    let savedKeyword = localStorage.getItem('userNewsKeyword');\n    if (savedKeyword && savedKeyword.trim() === \"\") {\n      savedKeyword = null; \/\/ \u7a7a\u6b04\u306e\u5834\u5408\u306f\u30ea\u30bb\u30c3\u30c8\n    }\n    \n    \/\/ \u4fdd\u5b58\u3055\u308c\u305f\u30ad\u30fc\u30ef\u30fc\u30c9\u304c\u3042\u308c\u3070\u305d\u308c\u3092\u3001\u306a\u3051\u308c\u3070\u300c\u4ed5\u4e8b\u52b9\u7387\u5316\u300d\u3092\u30c7\u30d5\u30a9\u30eb\u30c8\u306b\u3059\u308b\n    const targetKeyword = savedKeyword ? savedKeyword : '\u4ed5\u4e8b\u52b9\u7387\u5316';\n\n    \/\/ \u5165\u529b\u6b04\u306b\u306f\u300c\u4fdd\u5b58\u3055\u308c\u3066\u3044\u308b\u30ef\u30fc\u30c9\u300d\u3092\u8868\u793a\uff08\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u6642\u306f\u7a7a\u6b04\u306b\u3057\u3066\u30d7\u30ec\u30fc\u30b9\u30db\u30eb\u30c0\u30fc\u3092\u898b\u305b\u308b\uff09\n    document.getElementById('news-keyword').value = savedKeyword ? savedKeyword : '';\n\n    \/\/ \u8aad\u307f\u8fbc\u307f\u4e2d\u306e\u8868\u793a\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u5909\u66f4\n    const tickerElement = document.getElementById('top-news-ticker');\n    tickerElement.innerHTML = `<span class=\"ticker-item\">\u3010${targetKeyword}\u3011\u306e\u6700\u65b0\u30cb\u30e5\u30fc\u30b9\u3092\u53ce\u96c6\u4e2d...<\/span>`;\n    tickerElement.style.animationDuration = '10s'; \/\/ \u4e00\u65e6\u30ea\u30bb\u30c3\u30c8\n\n    \/\/ API\u30ad\u30e3\u30c3\u30b7\u30e5\u56de\u907f\u306e\u305f\u3081\u3001URL\u306b\u6642\u523b\u30d1\u30e9\u30e1\u30fc\u30bf\uff08\u30c0\u30df\u30fc\uff09\u3092\u4ed8\u4e0e\n    const rssUrl = `https:\/\/news.google.com\/rss\/search?q=${encodeURIComponent(targetKeyword)}&hl=ja&gl=JP&ceid=JP:ja`;\n    const apiUrl = `https:\/\/api.rss2json.com\/v1\/api.json?rss_url=${encodeURIComponent(rssUrl)}&t=${new Date().getTime()}`;\n    \n    try {\n      const response = await fetch(apiUrl);\n      const data = await response.json();\n      \n      if (data.status === 'ok' && data.items.length > 0) {\n        let newsHtml = '';\n        const tag = `\u3010${targetKeyword}\u3011`;\n        \n        \/\/ \u5b9f\u969b\u306e\u30cb\u30e5\u30fc\u30b9\u30925\u4ef6\u53d6\u5f97\n        data.items.slice(0, 5).forEach(item => {\n          newsHtml += `<a href=\"${item.link}\" target=\"_blank\" class=\"ticker-item\">${tag} ${item.title}<\/a>`;\n        });\n        tickerElement.innerHTML = newsHtml;\n\n        \/\/ \u4e00\u5b9a\u901f\u5ea6\uff081\u79d2\u9593\u306b40\u30d4\u30af\u30bb\u30eb\uff09\u306e\u8a08\u7b97\u30ed\u30b8\u30c3\u30af\n        const speedPerSecond = 40; \n        const totalWidth = tickerElement.offsetWidth;\n        const duration = totalWidth \/ speedPerSecond;\n        tickerElement.style.animationDuration = `${duration}s`;\n\n      } else {\n        tickerElement.innerHTML = '<span class=\"ticker-item\">\u95a2\u9023\u3059\u308b\u30cb\u30e5\u30fc\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u5225\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002<\/span>';\n      }\n    } catch (error) {\n      tickerElement.innerHTML = '<span class=\"ticker-item\">\u30cb\u30e5\u30fc\u30b9\u306e\u8aad\u307f\u8fbc\u307f\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002<\/span>';\n    }\n  }\n\n  \/\/ \u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u4fdd\u5b58\u3059\u308b\u95a2\u6570\n  function saveKeywordAndFetchTop() {\n    const keywordInput = document.getElementById('news-keyword').value;\n    const cleanKeyword = keywordInput ? keywordInput.trim() : '';\n    \n    if (cleanKeyword !== '') {\n      localStorage.setItem('userNewsKeyword', cleanKeyword);\n    } else {\n      localStorage.removeItem('userNewsKeyword'); \/\/ \u7a7a\u6b04\u3067\u4fdd\u5b58\u3057\u305f\u5834\u5408\u306f\u30c7\u30d5\u30a9\u30eb\u30c8\u306b\u623b\u3059\n    }\n    \n    \/\/ \u4fdd\u5b58\u5b8c\u4e86\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\n    const msg = document.getElementById('save-msg');\n    msg.style.display = 'inline';\n    setTimeout(() => { msg.style.display = 'none'; }, 2000);\n    \n    \/\/ \u30cb\u30e5\u30fc\u30b9\u3092\u518d\u53d6\u5f97\n    fetchTopNews();\n  }\n\n\n  \/\/ --- 2. WordPress\u8a18\u4e8b\u81ea\u52d5\u53d6\u5f97 ---\n  async function fetchWordPressPosts() {\n    const postsContainer = document.getElementById('wp-latest-posts');\n    try {\n      const apiUrl = 'https:\/\/salamasa.com\/?rest_route=\/wp\/v2\/posts&per_page=3&_embed';\n      const response = await fetch(apiUrl);\n      \n      if (!response.ok) throw new Error('API\u901a\u4fe1\u30a8\u30e9\u30fc');\n      \n      const posts = await response.json();\n      let html = '';\n\n      posts.forEach(post => {\n        const title = post.title.rendered;\n        const link = post.link;\n        \n        const dateObj = new Date(post.date);\n        const dateStr = `${dateObj.getFullYear()}.${String(dateObj.getMonth() + 1).padStart(2, '0')}.${String(dateObj.getDate()).padStart(2, '0')}`;\n        \n        let imageUrl = '';\n        if (post._embedded && post._embedded['wp:featuredmedia']) {\n          imageUrl = post._embedded['wp:featuredmedia'][0].source_url;\n        }\n        const imgHtml = imageUrl ? `<img decoding=\"async\" src=\"${imageUrl}\" alt=\"${title}\">` : 'NO IMAGE';\n\n        let categoryName = '\u30b3\u30e9\u30e0';\n        if (post._embedded && post._embedded['wp:term']) {\n          const categories = post._embedded['wp:term'][0];\n          if (categories && categories.length > 0) {\n            categoryName = categories[0].name;\n          }\n        }\n\n        html += `\n          <a href=\"${link}\" class=\"article-card\">\n            <div class=\"article-thumb\">${imgHtml}<\/div>\n            <div class=\"article-content\">\n              <span class=\"article-tag\">${categoryName}<\/span>\n              <h3 class=\"article-title\">${title}<\/h3>\n              <span class=\"article-date\">${dateStr}<\/span>\n            <\/div>\n          <\/a>\n        `;\n      });\n\n      postsContainer.innerHTML = html;\n\n    } catch (error) {\n      console.error('\u8a18\u4e8b\u53d6\u5f97\u30a8\u30e9\u30fc:', error);\n      postsContainer.innerHTML = '<div class=\"loading-posts\">\u8a18\u4e8b\u306e\u8aad\u307f\u8fbc\u307f\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u30b5\u30fc\u30d0\u30fc\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u7b49\u3092\u3054\u78ba\u8a8d\u304f\u3060\u3055\u3044\u3002<\/div>';\n    }\n  }\n\n  \/\/ \u30da\u30fc\u30b8\u8aad\u307f\u8fbc\u307f\u6642\u306b\u5b9f\u884c\n  window.addEventListener('DOMContentLoaded', () => {\n    fetchTopNews();\n    fetchWordPressPosts();\n  });\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>SALAMASA.com \u7406\u4e0d\u5c3d\u306a\u4f1a\u793e\u304b\u3089\u3001\u81ea\u5206\u306e\u6642\u9593\u3068\u8cc7\u7523\u3092\u596a\u3044\u8fd4\u3059\u305f\u3081\u306e\u6b66\u5668\u5eab \u6700\u65b0\u306e\u30cb\u30e5\u30fc\u30b9\u3092\u53d6\u5f97\u4e2d\u2026 \ud83d\udca1 \u3042\u306a\u305f\u5c02\u7528\u30cb\u30e5\u30fc\u30b9\u8a2d\u5b9a: \u4fdd\u5b58\u3057\u3066\u66f4\u65b0 \u2705 \u4fdd\u5b58\u3057\u307e\u3057\u305f\uff01 \u2699\ufe0f \u5e38\u99d0\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9 (Web Tools &#8230; <\/p>\n","protected":false},"author":1,"featured_media":2913,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-forfront.php","meta":{"footnotes":""},"class_list":["post-2773","page","type-page","status-publish","has-post-thumbnail","entry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/salamasa.com\/index.php?rest_route=\/wp\/v2\/pages\/2773","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/salamasa.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/salamasa.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/salamasa.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/salamasa.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2773"}],"version-history":[{"count":61,"href":"https:\/\/salamasa.com\/index.php?rest_route=\/wp\/v2\/pages\/2773\/revisions"}],"predecessor-version":[{"id":2961,"href":"https:\/\/salamasa.com\/index.php?rest_route=\/wp\/v2\/pages\/2773\/revisions\/2961"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/salamasa.com\/index.php?rest_route=\/wp\/v2\/media\/2913"}],"wp:attachment":[{"href":"https:\/\/salamasa.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}