{"id":149,"date":"2025-09-01T17:02:38","date_gmt":"2025-09-01T17:02:38","guid":{"rendered":"https:\/\/peppeldonk.nl\/?page_id=149"},"modified":"2025-09-01T17:02:38","modified_gmt":"2025-09-01T17:02:38","slug":"recepten","status":"publish","type":"page","link":"https:\/\/moesuiteigentuin.nl\/index.php\/recepten\/","title":{"rendered":"Recepten"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Ontdek de lekkerste moestuinrecepten<\/h3>\n\n\n\n<p>Welkom op de receptenpagina van onze moestuin! Hier bundelen we alle inspiratie die je nodig hebt om de oogst uit je tuin om te toveren tot verrassende en smaakvolle gerechten. Of je nu een ervaren moestuinier bent of pas net begint, je vindt hier recepten die passen bij elk seizoen en iedere oogst. Van simpele salades met verse groenten tot hartverwarmende stoofpotten en creatieve gerechten waar je misschien nog niet aan gedacht had.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Vind precies wat je zoekt<\/h3>\n\n\n\n<p>Wil je gericht zoeken naar recepten met de groenten die je op dit moment in je tuin hebt? Dan is de <strong>receptenzoeker<\/strong> een handig startpunt. Daar kun je eenvoudig aangeven welke groente je wilt gebruiken, waarna je direct suggesties krijgt voor passende gerechten. Zo hoef je nooit meer te twijfelen wat je kunt maken met die overvloed aan courgettes of het laatste restje spinazie uit de tuin.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Blader door alle recepten<\/h3>\n\n\n\n<p>Naast de zoekfunctie kun je natuurlijk ook gewoon lekker rondkijken. Op de pagina <strong>\u2018Alle Recepten\u2019<\/strong> vind je een compleet overzicht van alles wat we hebben verzameld. De recepten zijn overzichtelijk weergegeven, zodat je snel iets kunt vinden dat bij jouw smaak of gelegenheid past. Handig als je inspiratie zoekt voor het avondeten of een speciaal gerecht voor een feestje.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Koken met seizoenen en variatie<\/h3>\n\n\n\n<p>Het mooie van koken met groenten uit de moestuin is dat je automatisch met de seizoenen meekookt. Op deze pagina\u2019s laten we zien hoe veelzijdig je eigen oogst kan zijn. Zo ontdek je telkens nieuwe combinaties en smaken, en leer je hoe je op een duurzame en gezonde manier met eten omgaat. Onze recepten helpen je om niets verloren te laten gaan en het maximale uit je moestuin te halen.<\/p>\n\n\n    <style>\r\n    .mwr-wrap{border:1px solid #e5e7eb;border-radius:16px;padding:14px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.03);font-size:13px;}\r\n\r\n    .mwr-section{margin-bottom:16px}\r\n    .mwr-section-title{display:block;font-weight:600;margin-bottom:6px}\r\n\r\n    .mwr-buttons{display:flex;gap:8px;flex-wrap:wrap}\r\n    .mwr-btn{padding:6px 10px;border:1px solid #e5e7eb;border-radius:10px;background:#f8fafc;cursor:pointer;white-space:nowrap;font-size:13px}\r\n\r\n    \/* Zoekveld + knoppen *\/\r\n    .mwr-controls{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}\r\n    .mwr-searchblock{display:flex;flex-direction:column;flex:1 1 auto;min-width:160px;max-width:300px}\r\n    .mwr-input-wrap{position:relative}\r\n    .mwr-input{width:100%;padding:6px 8px;border:1px solid #e5e7eb;border-radius:8px;box-sizing:border-box}\r\n    .mwr-suggestions{position:absolute;top:100%;left:0;right:0;z-index:30;background:#fff;border:1px solid #e5e7eb;border-top:none;border-radius:0 0 8px 8px;max-height:220px;overflow:auto;display:none}\r\n    .mwr-suggestions-item{padding:6px 8px;cursor:pointer}\r\n    .mwr-suggestions-item:hover{background:#f1f5f9}\r\n\r\n    \/* Gekozen tags\/pillen *\/\r\n    .mwr-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}\r\n    .mwr-tag{background:#2563eb;color:#fff;padding:3px 8px;border-radius:999px;display:flex;align-items:center;gap:6px;font-size:12px}\r\n    .mwr-tag button{border:none;background:transparent;color:#fff;font-weight:bold;cursor:pointer;line-height:1}\r\n\r\n    \/* Result kaarten *\/\r\n    .mwr-results {\r\n      display:grid;\r\n      grid-template-columns:repeat(auto-fill, minmax(180px,1fr));\r\n      gap:1px;\r\n    }\r\n    .mwr-card {\r\n      border:1px solid #e5e7eb;\r\n      border-radius:12px;\r\n      overflow:hidden;\r\n      background:#fff;\r\n      display:flex;\r\n      flex-direction:column;\r\n      width:180px;\r\n      height:180px;\r\n      justify-content:space-between;\r\n      text-align:center;\r\n    }\r\n    .mwr-card img {\r\n      width:100%;\r\n      height:100px;\r\n      object-fit:cover;\r\n      display: block;\r\n    }\r\n    .mwr-card-body {\r\n      padding:6px;\r\n      display:flex;\r\n      flex-direction:column;\r\n      gap:6px;\r\n    }\r\n    .mwr-card-actions{display:flex;gap:8px;margin-top:auto}\r\n    .mwr-card-actions a{flex:1;text-align:center;padding:6px 8px;border-radius:10px;border:1px solid #e5e7eb;background:#f1f5f9;text-decoration:none;color:#111}\r\n    .mwr-empty{padding:14px;border:1px dashed #cbd5e1;border-radius:12px;color:#64748b;text-align:center}\r\n\r\n    \/* Mobiel *\/\r\n    @media (max-width:600px){\r\n      .mwr-buttons{flex-direction:column;width:100%}\r\n      .mwr-controls{flex-direction:column;align-items:stretch}\r\n      .mwr-controls .mwr-buttons{flex-direction:row;justify-content:flex-start}\r\n      .mwr-controls .mwr-btn{flex:1}\r\n    }\r\n    <\/style>\r\n\r\n    <div class=\"mwr-wrap\">\r\n\r\n      <!-- Blok A: Mijn groentes \/ oogst -->\r\n      <div class=\"mwr-section\">\r\n        <span class=\"mwr-section-title\">Geef recepten weer op basis van:<\/span>\r\n        <div class=\"mwr-buttons\">\r\n                    <button class=\"mwr-btn\" id=\"mwr-harvest\">Te oogsten deze maand<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- Blok B: Zoeken -->\r\n      <div class=\"mwr-section\">\r\n        <span class=\"mwr-section-title\">Zoek recepten op basis van groente:<\/span>\r\n        <div class=\"mwr-controls\">\r\n          <div class=\"mwr-searchblock\">\r\n            <div class=\"mwr-input-wrap\">\r\n              <input type=\"text\" id=\"mwr-input\" class=\"mwr-input\" placeholder=\"Zoek groente...\">\r\n              <div id=\"mwr-suggestions\" class=\"mwr-suggestions\"><\/div>\r\n            <\/div>\r\n            <div id=\"mwr-tags\" class=\"mwr-tags\"><\/div>\r\n          <\/div>\r\n          <div class=\"mwr-buttons\">\r\n            <button class=\"mwr-btn\" id=\"mwr-run\">Toon recepten<\/button>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- Blok C: Alle recepten -->\r\n      <div class=\"mwr-section\">\r\n        <span class=\"mwr-section-title\">Alle recepten:<\/span>\r\n        <div class=\"mwr-buttons\">\r\n          <button class=\"mwr-btn\" id=\"mwr-run-all\">Toon alle recepten<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- Resultaten -->\r\n      <div class=\"mwr-results\" id=\"mwr-results\"><\/div>\r\n\r\n    <\/div>\r\n\r\n    <script>\r\n    (function(){\r\n        const ajaxBase = 'https:\/\/moesuiteigentuin.nl\/wp-admin\/admin-ajax.php';\r\n        const input   = document.getElementById('mwr-input');\r\n        const sugg    = document.getElementById('mwr-suggestions');\r\n        const tagsBox = document.getElementById('mwr-tags');\r\n        const results = document.getElementById('mwr-results');\r\n        const btnRun  = document.getElementById('mwr-run');\r\n        const btnRunAll = document.getElementById('mwr-run-all');\r\n        const btnMy   = document.getElementById('mwr-my');\r\n        const btnHarv = document.getElementById('mwr-harvest');\r\n\r\n        let allGroentes = [];\r\n        let chosen = new Map();\r\n\r\n        fetch(ajaxBase + '?' + new URLSearchParams({action:'recepten_data', groentes_list: 1}))\r\n            .then(r=>r.json())\r\n            .then(list => { if(Array.isArray(list)) allGroentes = list; })\r\n            .catch(()=>{});\r\n\r\n        function renderTags(){\r\n            tagsBox.innerHTML = '';\r\n            Array.from(chosen.entries()).forEach(([id,name])=>{\r\n                const tag = document.createElement('div');\r\n                tag.className = 'mwr-tag';\r\n                const span = document.createElement('span'); span.textContent = name;\r\n                const btn  = document.createElement('button'); btn.innerHTML = '&times;';\r\n                btn.addEventListener('click', ()=>{ chosen.delete(id); renderTags(); });\r\n                tag.appendChild(span); tag.appendChild(btn);\r\n                tagsBox.appendChild(tag);\r\n            });\r\n        }\r\n\r\n        function showSuggestions(items){\r\n            sugg.innerHTML = '';\r\n            if(!items.length){ sugg.style.display = 'none'; return; }\r\n            items.slice(0,10).forEach(it=>{\r\n                const d = document.createElement('div');\r\n                d.className = 'mwr-suggestions-item';\r\n                d.textContent = it.name;\r\n                d.addEventListener('click', ()=>{\r\n                    if(!chosen.has(it.id)){ chosen.set(it.id, it.name); renderTags(); }\r\n                    input.value = '';\r\n                    sugg.style.display = 'none';\r\n                });\r\n                sugg.appendChild(d);\r\n            });\r\n            sugg.style.display = 'block';\r\n        }\r\n\r\n        input.addEventListener('input', ()=>{\r\n            const term = input.value.trim().toLowerCase();\r\n            if(term.length < 2){ sugg.style.display = 'none'; return; }\r\n            const matches = allGroentes.filter(g => g.name.toLowerCase().includes(term) && !chosen.has(g.id));\r\n            showSuggestions(matches);\r\n        });\r\n\r\n        document.addEventListener('click', (e)=>{ if(!e.target.closest('.mwr-input-wrap')) sugg.style.display = 'none'; });\r\n        input.addEventListener('keydown', (e)=>{ if(e.key==='Escape'){ sugg.style.display='none'; input.blur(); } });\r\n\r\n        function renderResults(data){\r\n            results.innerHTML = '';\r\n            if(!data || !data.length){\r\n                results.innerHTML = '<div class=\"mwr-empty\">Geen recepten gevonden.<\/div>';\r\n                return;\r\n            }\r\n            data.forEach(item=>{\r\n                const card = document.createElement('div'); card.className='mwr-card';\r\n                card.innerHTML =\r\n                    '<img decoding=\"async\" src=\"'+(item.image||'')+'\" alt=\"'+(item.title||'')+'\">'+\r\n                    '<div class=\"mwr-card-body\">'+\r\n                        '<strong>'+item.title+'<\/strong>'+\r\n                        '<div class=\"mwr-card-actions\"><a href=\"'+item.link+'\">Bekijk recept<\/a><\/div>'+\r\n                    '<\/div>';\r\n                results.appendChild(card);\r\n            });\r\n        }\r\n\r\n        function request(params){\r\n            const qs = new URLSearchParams(Object.assign({action:'recepten_data'}, params));\r\n            return fetch(ajaxBase + '?' + qs).then(r=>r.json());\r\n        }\r\n\r\n        btnRun.addEventListener('click', ()=>{\r\n            const ids = Array.from(chosen.keys());\r\n            if(!ids.length){ renderResults([]); return; }\r\n            const q = new URLSearchParams({action:'recepten_data'});\r\n            ids.forEach(id => q.append('groentes[]', id));\r\n            fetch(ajaxBase + '?' + q).then(r=>r.json()).then(renderResults);\r\n        });\r\n\r\n        if(btnRunAll){\r\n            btnRunAll.addEventListener('click', ()=>{\r\n                request({show_all:1}).then(renderResults);\r\n            });\r\n        }\r\n\r\n        if(btnMy){\r\n            btnMy.addEventListener('click', ()=>{ request({use_profile:1}).then(renderResults); });\r\n        }\r\n\r\n        if(btnHarv){\r\n            btnHarv.addEventListener('click', ()=>{ request({use_harvest:1}).then(renderResults); });\r\n        }\r\n    })();\r\n    <\/script>\r\n    \n","protected":false},"excerpt":{"rendered":"<p>Ontdek de lekkerste moestuinrecepten Welkom op de receptenpagina van onze moestuin! Hier bundelen we alle inspiratie die je nodig hebt om de oogst uit je tuin om te toveren tot verrassende en smaakvolle gerechten. Of je nu een ervaren moestuinier bent of pas net begint, je vindt hier recepten die passen bij elk seizoen en [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-149","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/moesuiteigentuin.nl\/index.php\/wp-json\/wp\/v2\/pages\/149","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/moesuiteigentuin.nl\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/moesuiteigentuin.nl\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/moesuiteigentuin.nl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/moesuiteigentuin.nl\/index.php\/wp-json\/wp\/v2\/comments?post=149"}],"version-history":[{"count":0,"href":"https:\/\/moesuiteigentuin.nl\/index.php\/wp-json\/wp\/v2\/pages\/149\/revisions"}],"wp:attachment":[{"href":"https:\/\/moesuiteigentuin.nl\/index.php\/wp-json\/wp\/v2\/media?parent=149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}