/* Section 8 — Blog (WordPress REST API 連動) */ const FALLBACK_POSTS = [ { cat: '助成金', ttl: '【2026年度版】中小企業が使いたい助成金ベスト10', date: '2026.04.12', link:'https://roumunews.jp/blog/' }, { cat: '法改正', ttl: '2026年10月施行 社会保険適用拡大への実務対応', date: '2026.04.05', link:'https://roumunews.jp/blog/' }, { cat: '労務トラブル', ttl: '退職代行サービス経由の退職 ― 押さえるべき3点', date: '2026.03.28', link:'https://roumunews.jp/blog/' } ]; const Blog = () => { const [posts, setPosts] = React.useState(null); React.useEffect(() => { let aborted = false; fetch('https://roumunews.jp/wp-json/wp/v2/posts?per_page=3&_embed', { mode: 'cors' }) .then(r => { if (!r.ok) throw new Error('http ' + r.status); return r.json(); }) .then(data => { if (aborted || !Array.isArray(data) || !data.length) return; const mapped = data.map(p => { const media = p._embedded && p._embedded['wp:featuredmedia'] && p._embedded['wp:featuredmedia'][0]; const thumb = (media && (media.media_details?.sizes?.medium_large?.source_url || media.source_url)) || null; const cats = (p._embedded && p._embedded['wp:term'] && p._embedded['wp:term'][0] || []).map(t => t.name); const d = new Date(p.date); const date = `${d.getFullYear()}.${String(d.getMonth()+1).padStart(2,'0')}.${String(d.getDate()).padStart(2,'0')}`; return { cat: cats[0] || 'お役立ち', ttl: (p.title && p.title.rendered) || '', date, link: p.link, thumb }; }); setPosts(mapped); }) .catch(() => { if (!aborted) setPosts(FALLBACK_POSTS); }); return () => { aborted = true; }; }, []); const list = posts || FALLBACK_POSTS; const isLoading = posts === null; return (
JOURNAL

お役立ち情報

すべての記事を見る
{list.map((p,i) => (
{p.thumb ? : }
{p.cat}
{p.date}
))}
); }; window.Blog = Blog;