{"id":2046,"date":"2025-08-25T12:02:09","date_gmt":"2025-08-25T11:02:09","guid":{"rendered":"https:\/\/ghanim-solution.de\/?p=2046"},"modified":"2025-08-26T00:39:53","modified_gmt":"2025-08-25T23:39:53","slug":"cal-com-kalender-im-wordpress-block-theme-per-shortcode-einbinden-auf-basis-des-inline-einbettung-codes","status":"publish","type":"post","link":"https:\/\/ghanim-solution.de\/index.php\/2025\/08\/25\/cal-com-kalender-im-wordpress-block-theme-per-shortcode-einbinden-auf-basis-des-inline-einbettung-codes\/","title":{"rendered":"Cal.com-Kalender im WordPress-Block-Theme per Shortcode einbinden (auf Basis des \u201eInline-Einbettung\u201c-Codes)"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Einf\u00fchrung<\/h2>\n\n\n\n<p>Diese Anleitung zeigt, wie Sie den Cal.com Kalender als Shortcode in Ihr WordPress-Theme einbinden. Der Code wird direkt von Cal.com generiert und f\u00fcr optimale Performance angepasst.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Schritt 1: Kalender-Code von Cal.com holen<\/h2>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Gehen Sie zu&nbsp;<a href=\"https:\/\/app.cal.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">app.cal.com<\/a><\/li>\n\n\n\n<li>W\u00e4hlen Sie Ihren Event-Type aus<\/li>\n\n\n\n<li>Klicken Sie auf das Men\u00fc-Symbol (\u22ef) rechts<\/li>\n\n\n\n<li>W\u00e4hlen Sie &#8220;&lt;&gt; Einbetten&#8221;<\/li>\n\n\n\n<li>W\u00e4hlen Sie &#8220;Inline Einbettung&#8221;<\/li>\n\n\n\n<li>Kopieren Sie den generierten Code<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Schritt 2: Template-Datei erstellen<\/h2>\n\n\n\n<p>Erstellen Sie eine Datei namens\u00a0<code>calcom-section.php<\/code>\u00a0im Verzeichnis\u00a0<code>\/wp-content\/themes\/IHR-THEME\/parts\/php\/<\/code> und f\u00fcgen Sie den kopierten Code ein:<\/p>\n\n\n\n<pre><code class=\"language-html\">\n&lt;!-- Cal inline embed code begins --&gt; \n&lt;div style=&quot;width:100%;height:100%;overflow:scroll&quot; \n     id=&quot;my-cal-inline-secret&quot;&gt;&lt;\/div&gt; \n\n&lt;script type=&quot;text\/javascript&quot;&gt; \n    (function (C, A, L) { \n        let p = function (a, ar) { \n            a.q.push(ar); \n        }; \n        let d = C.document; \n        C.Cal = C.Cal || function () { \n            let cal = C.Cal; \n            let ar = arguments; \n            if (!cal.loaded) { \n                cal.ns = {}; \n                cal.q = cal.q || []; \n                d.head.appendChild(d.createElement(&quot;script&quot;)).src = A; \n                cal.loaded = true; \n            } \n            if (ar[0] === L) { \n                const api = function () { \n                    p(api, arguments); \n                }; \n                const namespace = ar[1]; \n                api.q = api.q || []; \n                if (typeof namespace === &quot;string&quot;) { \n                    cal.ns[namespace] = cal.ns[namespace] || api; \n                    p(cal.ns[namespace], ar); \n                    p(cal, [&quot;initNamespace&quot;, namespace]); \n                } else { \n                    p(cal, ar); \n                } \n                return; \n            } \n            p(cal, ar); \n        }; \n    })(window, &quot;https:\/\/app.cal.com\/embed\/embed.js&quot;, &quot;init&quot;); \n\n    Cal(&quot;init&quot;, &quot;secret&quot;, { origin: &quot;https:\/\/app.cal.com&quot; }); \n\n    Cal.ns.secret(&quot;inline&quot;, { \n        elementOrSelector: &quot;#my-cal-inline-secret&quot;, \n        config: { &quot;layout&quot;: &quot;month_view&quot; }, \n        calLink: &quot;my-cal-inline\/secret&quot; \n    }); \n\n    Cal.ns.secret(&quot;ui&quot;, { \n        &quot;hideEventTypeDetails&quot;: false, \n        &quot;layout&quot;: &quot;month_view&quot; \n    }); \n&lt;\/script&gt; \n\n&lt;!-- Cal inline embed code ends --&gt;\n<\/code><\/pre>\n\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Schritt 3: Shortcode-Funktion in functions.php einf\u00fcgen<\/h2>\n\n\n\n<p>F\u00fcgen Sie diesen Code in die&nbsp;<code>functions.php<\/code>&nbsp;Ihres Themes ein:<\/p>\n\n\n\n<pre><code class=\"language-php\">\nfunction cal_shortcode() { \n    ob_start(); \n    \n    $template = get_stylesheet_directory() . '\/parts\/php\/calcom-section.php'; \n    \n    if (file_exists($template)) { \n        \/\/ Inhalte direkt ausgeben ohne Filter \n        echo file_get_contents($template); \n    } else { \n        echo '&lt;p&gt;Die Datei \"calcom-section\" wurde nicht gefunden.&lt;\/p&gt;'; \n    } \n    \n    $output = ob_get_clean(); \n    \n    \/\/ Zeilenumbr\u00fcche entfernen, die WordPress veranlassen k\u00f6nnten, p-Tags einzuf\u00fcgen \n    return str_replace(array(\"\\r\", \"\\n\"), '', $output); \n} \n\nadd_shortcode('cal_com_embed', 'cal_shortcode'); \n <\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Erkl\u00e4rung zur Zeilenumbruch-Entfernung<\/h2>\n\n\n\n<p>Die Zeile&nbsp;<code>return str_replace(array(\"\\r\", \"\\n\"), '', $output);<\/code>&nbsp;ist wichtig, weil:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>WordPress Auto-Formatierung<\/strong>: WordPress f\u00fcgt automatisch&nbsp;<code>&lt;p&gt;<\/code>-Tags um Inhalte ein, die es als Abs\u00e4tze interpretiert<\/li>\n\n\n\n<li><strong>Zeilenumbr\u00fcche als Trigger<\/strong>: Zeilenumbr\u00fcche (<code>\\r<\/code>,&nbsp;<code>\\n<\/code>) k\u00f6nnen dazu f\u00fchren, dass WordPress denkt, es handele sich um neue Abs\u00e4tze<\/li>\n\n\n\n<li><strong>JavaScript-Konflikte<\/strong>: Durch unerw\u00fcnschte&nbsp;<code>&lt;p&gt;<\/code>-Tags im JavaScript-Code kann die Ausf\u00fchrung des Kalender-Scripts fehlschlagen<\/li>\n\n\n\n<li><strong>Validit\u00e4t des HTML<\/strong>: Durch die Entfernung der Zeilenumbr\u00fcche bleibt der HTML-Code kompakt und wird nicht versehentlich von WordPress modifiziert<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Schritt 4: Shortcode verwenden<\/h2>\n\n\n\n<p>Verwenden Sie den Shortcode&nbsp;cal_com_embed&nbsp;in Ihren Seiten, Beitr\u00e4gen oder im Block-Editor:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Im Classic Editor: Einfach&nbsp;zwischen eckigen Klammer [ ] cal_com_embed&nbsp;einf\u00fcgen.<\/li>\n\n\n\n<li>Im Gutenberg Editor:\n<ul class=\"wp-block-list\">\n<li>&#8220;Shortcode&#8221;-Block hinzuf\u00fcgen <\/li>\n\n\n\n<li>zwischen eckigen Klammer <mark style=\"background-color:rgba(0, 0, 0, 0);color:#ff0404\" class=\"has-inline-color\">[ ]<\/mark> cal_com_embed\u00a0einf\u00fcgen.\u00a0eingeben<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Einf\u00fchrung Diese Anleitung zeigt, wie Sie den Cal.com Kalender als Shortcode in Ihr WordPress-Theme einbinden. Der Code wird direkt von Cal.com generiert und f\u00fcr optimale Performance angepasst. Schritt 1: Kalender-Code von Cal.com holen Schritt 2: Template-Datei erstellen Erstellen Sie eine Datei namens\u00a0calcom-section.php\u00a0im Verzeichnis\u00a0\/wp-content\/themes\/IHR-THEME\/parts\/php\/ und f\u00fcgen Sie den kopierten Code ein: &lt;!&#8211; Cal inline embed code [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2061,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2046","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/ghanim-solution.de\/index.php\/wp-json\/wp\/v2\/posts\/2046","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ghanim-solution.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ghanim-solution.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ghanim-solution.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ghanim-solution.de\/index.php\/wp-json\/wp\/v2\/comments?post=2046"}],"version-history":[{"count":12,"href":"https:\/\/ghanim-solution.de\/index.php\/wp-json\/wp\/v2\/posts\/2046\/revisions"}],"predecessor-version":[{"id":2060,"href":"https:\/\/ghanim-solution.de\/index.php\/wp-json\/wp\/v2\/posts\/2046\/revisions\/2060"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ghanim-solution.de\/index.php\/wp-json\/wp\/v2\/media\/2061"}],"wp:attachment":[{"href":"https:\/\/ghanim-solution.de\/index.php\/wp-json\/wp\/v2\/media?parent=2046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ghanim-solution.de\/index.php\/wp-json\/wp\/v2\/categories?post=2046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ghanim-solution.de\/index.php\/wp-json\/wp\/v2\/tags?post=2046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}