oEmbed Plugin | eigene Provider definieren
<iframe height="300" style="width: 100%;" scrolling="no" title="GSAP - Animation Triad Demo: Timing, Motion, Meaning" src="https://codepen.io/editor/ZcarecroW/embed/019da77a-6995-7501-9af8-4866e69b7f1c?default-tab=html%2Cresult" frameborder="no" loading="lazy" allowtransparency="true">
See the Pen <a href="https://codepen.io/editor/ZcarecroW/pen/019da77a-6995-7501-9af8-4866e69b7f1c">
GSAP - Animation Triad Demo: Timing, Motion, Meaning</a> by ZcarecroW (<a href="https://codepen.io/ZcarecroW">@ZcarecroW</a>)
on <a href="https://codepen.io">CodePen</a>.
</iframe>
CodePen als oEmbed-Provider hinzufügen
CodePen unterstützt offiziell das oEmbed-Protokoll. Du kannst es direkt über den Tab "Eigene Provider" in deinem Plugin hinzufügen.
Über die Admin-Oberfläche
Gehe zu Einstellungen → oEmbed Manager → Eigene Provider und füge folgende Werte ein:
| Feld | Wert |
|---|---|
| URL-Pattern | https://codepen.io/*/pen/* |
| Endpoint-URL | https://codepen.io/api/oembed |
| Regex | ☐ (nicht angehakt) |
Das Problem mit deiner URL
Deine aktuelle URL hat das Format:
https://codepen.io/editor/ZcarecroW/embed/019da77a-6995-7501-9af8-4866e69b7f1c
Das ist eine Editor/Embed-URL, keine Standard-Pen-URL. oEmbed von CodePen funktioniert nur mit dem kanonischen Pen-Format. Du musst also in deinem WordPress-Beitrag diese URL einfügen:
https://codepen.io/ZcarecroW/pen/019da77a-6995-7501-9af8-4866e69b7f1c
Dann erkennt WordPress die URL automatisch und holt über den oEmbed-Endpoint die Einbettung.
Erweiterte Variante: Auch Editor-URLs unterstützen
Falls du auch die /editor/-URLs und /embed/-URLs automatisch auflösen möchtest, brauchst du einen zweiten Provider-Eintrag mit Regex. Da das URL-Pattern https://codepen.io/*/pen/* nur die Standard-Pen-URLs matcht, kannst du zusätzlich einen Regex-Provider anlegen:
| Feld | Wert |
|---|---|
| URL-Pattern | #https?://codepen\.io/.+/(pen|embed|full)/.*#i |
| Endpoint-URL | https://codepen.io/api/oembed |
| Regex | ☑ (angehakt) |
Allerdings ist der sauberste Weg einfach die kanonische Pen-URL zu verwenden.
Testen
Du kannst prüfen, ob der oEmbed-Endpoint funktioniert, indem du folgende URL im Browser aufrufst:
https://codepen.io/api/oembed?url=https://codepen.io/ZcarecroW/pen/019da77a-6995-7501-9af8-4866e69b7f1c&format=json
Das sollte eine JSON-Antwort mit dem Embed-HTML zurückliefern.
Hinweis zum Provider-Matching
In deiner filter_providers-Methode werden Provider über stripos gematcht. Eigene Provider, die über register_custom_providers mit wp_oembed_add_provider registriert werden, sind davon nicht betroffen – sie werden direkt in WordPress registriert und funktionieren unabhängig vom Deaktivierungs-Filter.