{"id":563,"date":"2026-04-10T11:16:39","date_gmt":"2026-04-10T11:16:39","guid":{"rendered":"https:\/\/myiptv.nl\/blog\/?page_id=563"},"modified":"2026-04-10T11:31:18","modified_gmt":"2026-04-10T11:31:18","slug":"volledige-index","status":"publish","type":"page","link":"https:\/\/myiptv.nl\/blog\/volledige-index\/","title":{"rendered":"Volledige Index"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"563\" class=\"elementor elementor-563\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b74ec48 e-flex e-con-boxed e-con e-parent\" data-id=\"b74ec48\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5a3087e elementor-widget elementor-widget-html\" data-id=\"5a3087e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n@import url('https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,600;0,9..40,700;1,9..40,400&display=swap');\r\n\r\n.vi-wrapper {\r\n  max-width: 800px;\r\n  margin: 0 auto;\r\n  padding: 60px 20px 80px;\r\n  font-family: 'DM Sans', sans-serif;\r\n}\r\n\r\n.vi-header {\r\n  text-align: center;\r\n  margin-bottom: 40px;\r\n}\r\n\r\n.vi-header h1 {\r\n  font-size: 2.4rem;\r\n  font-weight: 700;\r\n  color: #0f1c33;\r\n  margin: 0 0 14px;\r\n  letter-spacing: -0.5px;\r\n}\r\n\r\n.vi-header p {\r\n  font-size: 1.1rem;\r\n  color: #5a6478;\r\n  margin: 0 auto;\r\n  max-width: 620px;\r\n  line-height: 1.65;\r\n}\r\n\r\n\/* Search *\/\r\n.vi-search {\r\n  max-width: 480px;\r\n  margin: 0 auto 48px;\r\n  position: relative;\r\n}\r\n\r\n.vi-search svg {\r\n  position: absolute;\r\n  left: 14px;\r\n  top: 14px;\r\n  width: 18px;\r\n  height: 18px;\r\n  stroke: #9aa3b3;\r\n  stroke-width: 2;\r\n  fill: none;\r\n  pointer-events: none;\r\n}\r\n\r\n.vi-search input {\r\n  width: 100%;\r\n  padding: 13px 16px 13px 42px;\r\n  font-size: 1rem;\r\n  font-family: 'DM Sans', sans-serif;\r\n  border: 1px solid #e2e6ee;\r\n  border-radius: 10px;\r\n  color: #0f1c33;\r\n  background: #ffffff;\r\n  box-sizing: border-box;\r\n  outline: none;\r\n  transition: border-color 0.2s, box-shadow 0.2s;\r\n}\r\n\r\n.vi-search input::placeholder { color: #9aa3b3; }\r\n.vi-search input:focus {\r\n  border-color: #1f4787;\r\n  box-shadow: 0 0 0 3px rgba(31, 71, 135, 0.08);\r\n}\r\n\r\n.vi-stats {\r\n  font-size: 0.85rem;\r\n  color: #9aa3b3;\r\n  margin-top: 8px;\r\n  text-align: center;\r\n  min-height: 20px;\r\n}\r\n\r\n\/* Category *\/\r\n.vi-cat {\r\n  margin-bottom: 36px;\r\n}\r\n\r\n.vi-cat-head {\r\n  display: flex;\r\n  flex-direction: row;\r\n  align-items: center;\r\n  gap: 10px;\r\n  margin-bottom: 12px;\r\n  padding-bottom: 10px;\r\n  border-bottom: 1px solid #e2e6ee;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.vi-cat-icon {\r\n  width: 36px;\r\n  height: 36px;\r\n  min-width: 36px;\r\n  border-radius: 9px;\r\n  background: #edf1f8;\r\n  display: inline-flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  flex-shrink: 0;\r\n}\r\n\r\n.vi-cat-icon svg {\r\n  width: 18px;\r\n  height: 18px;\r\n  stroke: #1f4787;\r\n  stroke-width: 1.8;\r\n  fill: none;\r\n}\r\n\r\n.vi-cat-head h2 {\r\n  font-size: 1.15rem !important;\r\n  font-weight: 700 !important;\r\n  color: #0f1c33 !important;\r\n  margin: 0 !important;\r\n  padding: 0 !important;\r\n  letter-spacing: -0.2px;\r\n  line-height: 1.3 !important;\r\n  flex-shrink: 0;\r\n}\r\n\r\n.vi-cat-head h2 a,\r\n.vi-cat-head h2 a:link,\r\n.vi-cat-head h2 a:visited {\r\n  color: #0f1c33 !important;\r\n  text-decoration: none !important;\r\n  transition: color 0.2s;\r\n}\r\n\r\n.vi-cat-head h2 a:hover { color: #1f4787 !important; }\r\n\r\n.vi-cat-count {\r\n  margin-left: auto;\r\n  font-size: 0.8rem;\r\n  font-weight: 600;\r\n  color: #9aa3b3;\r\n  white-space: nowrap;\r\n  flex-shrink: 0;\r\n}\r\n\r\n\/* Post list \u2014 simple titles *\/\r\n.vi-post {\r\n  display: block;\r\n  padding: 10px 0;\r\n  border-bottom: 1px solid #f0f2f5;\r\n  text-decoration: none;\r\n  transition: padding-left 0.2s;\r\n}\r\n\r\n.vi-post:last-child { border-bottom: none; }\r\n\r\n.vi-post:hover { padding-left: 6px; }\r\n\r\n.vi-post-title {\r\n  font-size: 0.95rem;\r\n  font-weight: 500;\r\n  color: #0f1c33;\r\n  margin: 0;\r\n  line-height: 1.5;\r\n  transition: color 0.2s;\r\n}\r\n\r\n.vi-post:hover .vi-post-title { color: #1f4787; }\r\n\r\n\/* No results *\/\r\n.vi-geen {\r\n  display: none;\r\n  text-align: center;\r\n  padding: 48px 20px;\r\n}\r\n\r\n.vi-geen p {\r\n  color: #5a6478;\r\n  font-size: 1rem;\r\n  margin: 0 0 6px;\r\n  font-family: 'DM Sans', sans-serif;\r\n}\r\n\r\n.vi-geen .vi-geen-sub {\r\n  font-size: 0.9rem;\r\n  color: #9aa3b3;\r\n}\r\n\r\n.vi-loading {\r\n  text-align: center;\r\n  padding: 48px 20px;\r\n  color: #9aa3b3;\r\n  font-family: 'DM Sans', sans-serif;\r\n}\r\n\r\n@media (max-width: 600px) {\r\n  .vi-header h1 { font-size: 1.8rem; }\r\n  .vi-header p { font-size: 1rem; }\r\n}\r\n<\/style>\r\n\r\n<div class=\"vi-wrapper\">\r\n\r\n  <div class=\"vi-header\">\r\n    <h1>Volledige Index<\/h1>\r\n    <p>Alle IPTV-artikelen op \u00e9\u00e9n plek \u2014 doorzoek of blader per categorie.<\/p>\r\n  <\/div>\r\n\r\n  <div class=\"vi-search\">\r\n    <svg viewBox=\"0 0 24 24\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><\/svg>\r\n    <input type=\"text\" id=\"vi-input\" placeholder=\"Zoek een artikel\u2026\" autocomplete=\"off\">\r\n    <div class=\"vi-stats\" id=\"vi-stats\"><\/div>\r\n  <\/div>\r\n\r\n  <div id=\"vi-lijst\"><div class=\"vi-loading\">Artikelen laden\u2026<\/div><\/div>\r\n  <div class=\"vi-geen\" id=\"vi-geen\">\r\n    <p>Geen artikelen gevonden.<\/p>\r\n    <p class=\"vi-geen-sub\">Probeer andere zoekwoorden.<\/p>\r\n  <\/div>\r\n\r\n<\/div>\r\n\r\n<script>\r\n(function() {\r\n  var BASE = window.location.origin + '\/blog\/wp-json\/wp\/v2';\r\n  var lijst = document.getElementById('vi-lijst');\r\n  var stats = document.getElementById('vi-stats');\r\n  var geen  = document.getElementById('vi-geen');\r\n  var input = document.getElementById('vi-input');\r\n  var EXCLUDE_IDS = [1];\r\n\r\n  var ICONS = {\r\n    'wat-is-iptv':          '<circle cx=\"12\" cy=\"12\" r=\"10\"\/><path d=\"M12 16v-4\"\/><path d=\"M12 8h.01\"\/>',\r\n    'iptv-kopen':           '<path d=\"M6 2L3 6v14a2 2 0 002 2h14a2 2 0 002-2V6l-3-4z\"\/><line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\"\/><path d=\"M16 10a4 4 0 01-8 0\"\/>',\r\n    'iptv-apparaten':       '<rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"\/><line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"\/><line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"\/>',\r\n    'iptv-apps':            '<rect x=\"2\" y=\"2\" width=\"8\" height=\"8\" rx=\"1.5\"\/><rect x=\"14\" y=\"2\" width=\"8\" height=\"8\" rx=\"1.5\"\/><rect x=\"2\" y=\"14\" width=\"8\" height=\"8\" rx=\"1.5\"\/><rect x=\"14\" y=\"14\" width=\"8\" height=\"8\" rx=\"1.5\"\/>',\r\n    'iptv-legaal-nederland':'<path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/>',\r\n    'iptv-problemen':       '<path d=\"M14.7 6.3a1 1 0 000 1.4l1.6 1.6a1 1 0 001.4 0l3.77-3.77a6 6 0 01-7.94 7.94l-6.91 6.91a2.12 2.12 0 01-3-3l6.91-6.91a6 6 0 017.94-7.94l-3.76 3.76z\"\/>',\r\n    'blog':                 '<path d=\"M2 3h6a4 4 0 014 4v14a3 3 0 00-3-3H2z\"\/><path d=\"M22 3h-6a4 4 0 00-4 4v14a3 3 0 013-3h7z\"\/>'\r\n  };\r\n  var DEFAULT_ICON = '<circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/>';\r\n  var CAT_ORDER = ['wat-is-iptv','iptv-kopen','iptv-apparaten','iptv-apps','iptv-legaal-nederland','iptv-problemen','blog'];\r\n\r\n  fetch(BASE + '\/categories?per_page=100&hide_empty=true')\r\n    .then(function(r) { return r.json(); })\r\n    .then(function(cats) {\r\n      cats = cats.filter(function(c) { return EXCLUDE_IDS.indexOf(c.id) === -1; });\r\n      cats.sort(function(a, b) {\r\n        var ia = CAT_ORDER.indexOf(a.slug); if (ia === -1) ia = 999;\r\n        var ib = CAT_ORDER.indexOf(b.slug); if (ib === -1) ib = 999;\r\n        return ia - ib;\r\n      });\r\n\r\n      var promises = cats.map(function(cat) {\r\n        return fetch(BASE + '\/posts?categories=' + cat.id + '&per_page=100&orderby=date&order=desc')\r\n          .then(function(r) { return r.json(); })\r\n          .then(function(posts) { cat._posts = posts; return cat; });\r\n      });\r\n      return Promise.all(promises);\r\n    })\r\n    .then(function(cats) {\r\n      cats = cats.filter(function(c) { return c._posts && c._posts.length > 0; });\r\n      var html = '';\r\n      var totalPosts = 0;\r\n\r\n      cats.forEach(function(cat) {\r\n        var count = cat._posts.length;\r\n        totalPosts += count;\r\n        var icon = ICONS[cat.slug] || DEFAULT_ICON;\r\n\r\n        html += '<div class=\"vi-cat\" data-cat=\"' + cat.slug + '\">';\r\n        html += '<div class=\"vi-cat-head\">';\r\n        html += '<div class=\"vi-cat-icon\"><svg viewBox=\"0 0 24 24\">' + icon + '<\/svg><\/div>';\r\n        html += '<h2><a href=\"' + cat.link + '\">' + cat.name + '<\/a><\/h2>';\r\n        html += '<span class=\"vi-cat-count\">' + count + ' ' + (count === 1 ? 'artikel' : 'artikelen') + '<\/span>';\r\n        html += '<\/div>';\r\n\r\n        cat._posts.forEach(function(post) {\r\n          html += '<a class=\"vi-post\" href=\"' + post.link + '\">';\r\n          html += '<p class=\"vi-post-title\">' + post.title.rendered + '<\/p>';\r\n          html += '<\/a>';\r\n        });\r\n\r\n        html += '<\/div>';\r\n      });\r\n\r\n      lijst.innerHTML = html;\r\n\r\n      input.addEventListener('input', function() {\r\n        var q = this.value.trim().toLowerCase();\r\n        var catEls = lijst.querySelectorAll('.vi-cat');\r\n        var postEls = lijst.querySelectorAll('.vi-post');\r\n\r\n        if (!q) {\r\n          catEls.forEach(function(c) { c.style.display = ''; });\r\n          postEls.forEach(function(p) { p.style.display = ''; });\r\n          geen.style.display = 'none';\r\n          stats.textContent = '';\r\n          return;\r\n        }\r\n\r\n        var terms = q.split(\/\\s+\/);\r\n        var found = 0;\r\n\r\n        catEls.forEach(function(cat) {\r\n          var posts = cat.querySelectorAll('.vi-post');\r\n          var catVisible = 0;\r\n          posts.forEach(function(p) {\r\n            var text = p.textContent.toLowerCase();\r\n            var match = terms.every(function(t) { return text.indexOf(t) !== -1; });\r\n            p.style.display = match ? '' : 'none';\r\n            if (match) { catVisible++; found++; }\r\n          });\r\n          cat.style.display = catVisible > 0 ? '' : 'none';\r\n        });\r\n\r\n        geen.style.display = found === 0 ? '' : 'none';\r\n        stats.textContent = found > 0 ? found + ' van ' + totalPosts + ' artikelen' : '';\r\n      });\r\n    })\r\n    .catch(function(err) {\r\n      lijst.innerHTML = '<p style=\"color:#c00; text-align:center; padding:40px 0;\">Kon artikelen niet laden.<\/p>';\r\n    });\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"Volledige Index Alle IPTV-artikelen op \u00e9\u00e9n plek \u2014 doorzoek of blader per categorie. Artikelen laden\u2026 Geen artikelen gevonden.&hellip;","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"csco_display_header_overlay":false,"csco_singular_sidebar":"","csco_page_header_type":"","footnotes":""},"class_list":{"0":"post-563","1":"page","2":"type-page","3":"status-publish","5":"cs-entry"},"_links":{"self":[{"href":"https:\/\/myiptv.nl\/blog\/wp-json\/wp\/v2\/pages\/563","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/myiptv.nl\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/myiptv.nl\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/myiptv.nl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/myiptv.nl\/blog\/wp-json\/wp\/v2\/comments?post=563"}],"version-history":[{"count":13,"href":"https:\/\/myiptv.nl\/blog\/wp-json\/wp\/v2\/pages\/563\/revisions"}],"predecessor-version":[{"id":577,"href":"https:\/\/myiptv.nl\/blog\/wp-json\/wp\/v2\/pages\/563\/revisions\/577"}],"wp:attachment":[{"href":"https:\/\/myiptv.nl\/blog\/wp-json\/wp\/v2\/media?parent=563"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}