{"id":7033,"date":"2024-09-25T06:16:07","date_gmt":"2024-09-25T06:16:07","guid":{"rendered":"https:\/\/simple-simon.com\/blog\/"},"modified":"2026-10-22T10:19:53","modified_gmt":"2026-10-22T10:19:53","slug":"blog","status":"publish","type":"page","link":"https:\/\/simple-simon.com\/fr\/blog\/","title":{"rendered":"Blog"},"content":{"rendered":"\n\n\n<section class=\"theme-header-banner bg__blue text__white  theme-p-sm\">\n\t<div class=\"container\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12\">\n\t\t\t\t<h1>Blog<\/h1>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n<\/section>\n<div class=\"wp-block-getwid-advanced-spacer\" style=\"height: 50px\" aria-hidden=\"true\"><\/div>\n\n<!--\r\n  Simple-Simon blogoverzicht + categoriefilter (vervangt FacetWP)\r\n  ----------------------------------------------------------------\r\n  Vervangt deze twee shortcodes op de blogpagina's:\r\n    [facetwp facet=\"blog_categories\"]\r\n    [facetwp template=\"blog_posts\"]\r\n\r\n  Haalt de berichten op via de standaard WordPress REST API, dus nieuwe\r\n  berichten en categorie\u00ebn verschijnen automatisch. Werkt voor NL\/DE\/EN\/FR\r\n  (taal wordt herkend aan <html lang=\"...\">). Gebruikt de bestaande\r\n  thema-styling (theme-news kaarten, blauwe categorieknoppen).\r\n  Bestaande links als \/blog\/?_blog_categories=klantencases blijven werken.\r\n-->\r\n<div id=\"ss-blog\" class=\"ss-blog\">\r\n  <div class=\"ss-blog__filters facetwp-facet-blog_categories\" role=\"group\" aria-label=\"Blog categorie\u00ebn\"><\/div>\r\n  <div class=\"ss-blog__grid row\" aria-live=\"polite\"><\/div>\r\n  <div class=\"ss-blog__more\" style=\"text-align:center;margin-bottom:48px;\"><\/div>\r\n<\/div>\r\n\r\n<style>\r\n  .ss-blog__filters button.facetwp-radio { border: 0; font: inherit; font-size: 16px; line-height: 100%; }\r\n  .ss-blog__filters button.facetwp-radio:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }\r\n  .ss-blog__filters { margin-bottom: 36px; }\r\n  .ss-blog__more button { border: 0; font: inherit; cursor: pointer; }\r\n  .ss-blog__grid.is-loading { opacity: .5; transition: opacity .2s; }\r\n<\/style>\r\n\r\n<script>\r\n(function () {\r\n  var root = document.getElementById('ss-blog');\r\n  if (!root) return;\r\n\r\n  var PER_PAGE = 24;\r\n  var lang = (document.documentElement.lang || 'nl').slice(0, 2).toLowerCase();\r\n  var T = {\r\n    nl: { all: 'Alles', more: 'Meer laden', none: 'Geen resultaten gevonden', error: 'De berichten konden niet worden geladen.' },\r\n    de: { all: 'Alle',  more: 'Mehr laden', none: 'Keine Ergebnisse gefunden', error: 'Die Beitr\u00e4ge konnten nicht geladen werden.' },\r\n    en: { all: 'All',   more: 'Load more',  none: 'No results found', error: 'The posts could not be loaded.' },\r\n    fr: { all: 'Tous',  more: 'Voir plus',  none: 'Aucun r\u00e9sultat trouv\u00e9', error: 'Les articles n\u2019ont pas pu \u00eatre charg\u00e9s.' }\r\n  }[lang] || null;\r\n  if (!T) { lang = 'nl'; T = { all: 'Alles', more: 'Meer laden', none: 'Geen resultaten gevonden', error: 'De berichten konden niet worden geladen.' }; }\r\n\r\n  var API = '\/wp-json\/wp\/v2\/';\r\n  var filtersEl = root.querySelector('.ss-blog__filters');\r\n  var gridEl = root.querySelector('.ss-blog__grid');\r\n  var moreEl = root.querySelector('.ss-blog__more');\r\n\r\n  var cats = [];          \/\/ [{id, name, slug, count}]\r\n  var catById = {};\r\n  var current = '';       \/\/ slug, '' = alles\r\n  var page = 1;\r\n  var totalPages = 1;\r\n\r\n  function text(html) { var d = document.createElement('div'); d.innerHTML = html || ''; return d.textContent || ''; }\r\n  function el(tag, cls, txt) { var e = document.createElement(tag); if (cls) e.className = cls; if (txt != null) e.textContent = txt; return e; }\r\n  function fmtDate(iso) { var p = (iso || '').slice(0, 10).split('-'); return p.length === 3 ? p[2] + '-' + p[1] + '-' + p[0] : ''; }\r\n\r\n  function getJSON(url) {\r\n    return fetch(url, { credentials: 'same-origin' }).then(function (r) {\r\n      if (!r.ok) throw new Error(r.status);\r\n      return r.json().then(function (data) {\r\n        return { data: data, pages: parseInt(r.headers.get('X-WP-TotalPages') || '1', 10) };\r\n      });\r\n    });\r\n  }\r\n\r\n  function renderFilters() {\r\n    filtersEl.innerHTML = '';\r\n    var all = [{ slug: '', label: T.all }].concat(cats.map(function (c) {\r\n      return { slug: c.slug, label: c.name, count: c.count };\r\n    }));\r\n    all.forEach(function (c) {\r\n      var b = el('button', 'facetwp-radio' + (c.slug === current ? ' checked' : ''));\r\n      b.type = 'button';\r\n      b.setAttribute('aria-pressed', c.slug === current ? 'true' : 'false');\r\n      b.appendChild(el('span', 'facetwp-display-value', c.label));\r\n      if (c.count != null) b.appendChild(el('span', 'facetwp-counter', ' (' + c.count + ')'));\r\n      b.addEventListener('click', function () {\r\n        if (c.slug === current) return;\r\n        current = c.slug;\r\n        updateUrl();\r\n        renderFilters();\r\n        load(true);\r\n      });\r\n      filtersEl.appendChild(b);\r\n    });\r\n  }\r\n\r\n  function card(p) {\r\n    var media = p._embedded && p._embedded['wp:featuredmedia'] && p._embedded['wp:featuredmedia'][0];\r\n    var img = '';\r\n    if (media && media.source_url) {\r\n      var s = media.media_details && media.media_details.sizes;\r\n      img = (s && (s.large || s.medium_large) && (s.large || s.medium_large).source_url) || media.source_url;\r\n    }\r\n    var title = text(p.title && p.title.rendered);\r\n    var cat = (p.categories || []).map(function (id) { return catById[id]; }).filter(Boolean)[0];\r\n\r\n    var col = el('div', 'col-md-3 mb-5');\r\n    var news = el('div', 'theme-news bg__white');\r\n    var top = el('div', 'theme-news__top');\r\n    if (img) {\r\n      var im = document.createElement('img');\r\n      im.src = img; im.alt = title; im.loading = 'lazy'; im.decoding = 'async';\r\n      top.appendChild(im);\r\n    }\r\n    var catWrap = el('div', 'theme-news__top-category');\r\n    if (cat) catWrap.appendChild(el('span', null, cat.name));\r\n    top.appendChild(catWrap);\r\n\r\n    var content = el('div', 'theme-news__content');\r\n    var ct = el('div', 'theme-news__content-top');\r\n    ct.appendChild(el('span', null, fmtDate(p.date)));\r\n    content.appendChild(ct);\r\n    var pt = el('p'); pt.appendChild(el('strong', null, title)); content.appendChild(pt);\r\n    content.appendChild(el('p'));\r\n    var a = el('a', 'theme-link'); a.href = p.link; a.setAttribute('aria-label', title);\r\n    a.appendChild(el('i', 'bi bi-chevron-right'));\r\n    content.appendChild(a);\r\n\r\n    news.appendChild(top); news.appendChild(content); col.appendChild(news);\r\n    return col;\r\n  }\r\n\r\n  function load(reset) {\r\n    if (reset) { page = 1; }\r\n    gridEl.classList.add('is-loading');\r\n    var q = API + 'posts?per_page=' + PER_PAGE + '&page=' + page + '&lang=' + lang +\r\n            '&_embed=wp:featuredmedia&_fields=id,date,link,title,categories,_links,_embedded';\r\n    var c = cats.filter(function (x) { return x.slug === current; })[0];\r\n    if (c) q += '&categories=' + c.id;\r\n\r\n    getJSON(q).then(function (res) {\r\n      totalPages = res.pages;\r\n      if (reset) gridEl.innerHTML = '';\r\n      res.data.forEach(function (p) { gridEl.appendChild(card(p)); });\r\n      if (!gridEl.children.length) gridEl.appendChild(el('div', 'col-12', T.none));\r\n      renderMore();\r\n    }).catch(function () {\r\n      if (reset) gridEl.innerHTML = '';\r\n      gridEl.appendChild(el('div', 'col-12', T.error));\r\n    }).then(function () { gridEl.classList.remove('is-loading'); });\r\n  }\r\n\r\n  function renderMore() {\r\n    moreEl.innerHTML = '';\r\n    if (page >= totalPages) return;\r\n    var b = el('button', 'theme-btn theme-btn__blue-gradient', T.more);\r\n    b.type = 'button';\r\n    b.addEventListener('click', function () { page++; b.disabled = true; load(false); });\r\n    moreEl.appendChild(b);\r\n  }\r\n\r\n  function updateUrl() {\r\n    try {\r\n      var u = new URL(window.location.href);\r\n      if (current) u.searchParams.set('_blog_categories', current); else u.searchParams.delete('_blog_categories');\r\n      history.replaceState(null, '', u.toString());\r\n    } catch (e) {}\r\n  }\r\n\r\n  getJSON(API + 'categories?per_page=100&hide_empty=true&lang=' + lang + '&_fields=id,name,slug,count')\r\n    .then(function (res) {\r\n      cats = res.data.filter(function (c) { return c.count > 0; })\r\n                     .sort(function (a, b) { return b.count - a.count; });\r\n      cats.forEach(function (c) { catById[c.id] = c; });\r\n      try {\r\n        var want = new URL(window.location.href).searchParams.get('_blog_categories') || '';\r\n        if (cats.some(function (c) { return c.slug === want; })) current = want;\r\n      } catch (e) {}\r\n      renderFilters();\r\n      load(true);\r\n    })\r\n    .catch(function () { gridEl.appendChild(el('div', 'col-12', T.error)); });\r\n})();\r\n<\/script>\r\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":12,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"tags":[],"class_list":["post-7033","page","type-page","status-publish","hentry"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/simple-simon.com\/fr\/wp-json\/wp\/v2\/pages\/7033","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/simple-simon.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/simple-simon.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/simple-simon.com\/fr\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/simple-simon.com\/fr\/wp-json\/wp\/v2\/comments?post=7033"}],"version-history":[{"count":3,"href":"https:\/\/simple-simon.com\/fr\/wp-json\/wp\/v2\/pages\/7033\/revisions"}],"predecessor-version":[{"id":20690,"href":"https:\/\/simple-simon.com\/fr\/wp-json\/wp\/v2\/pages\/7033\/revisions\/20690"}],"wp:attachment":[{"href":"https:\/\/simple-simon.com\/fr\/wp-json\/wp\/v2\/media?parent=7033"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/simple-simon.com\/fr\/wp-json\/wp\/v2\/tags?post=7033"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}