Wie binde ich mehrere Tinymce Instanzen in Metaboxen ein
-
Laut Dokumentation (https://developer.wordpress.org/reference/functions/wp_editor/) kann man die Funktion wp_editor ja nicht im Callback einer Metabox nutzen.
Zitat Dokumenten:
„NOTE: Once initialized the TinyMCE editor cannot be safely moved in the DOM. For that reason running wp_editor() inside of a meta box is not a good idea unless only Quicktags is used. On the post edit screen several actions can be used to include additional editors containing TinyMCE: ‘edit_page_form’, ‘edit_form_advanced’ and ‘dbx_post_sidebar’. See https://core.trac.wordpress.org/ticket/19173 for more information.“
Ich benötige allerdings mehr als eine Tinymce auf der Anlegen/Bearbeiten-Seite eines Custom post types, d.h. es soll mehrere Metaboxen mit jeweils eigener Tinymce-Instanz geben.
Das verlinke Ticket ist da, wenig hilfreich.
Es muss doch möglich sein, da bei Beiträgen ja auch zwei Instanzen auf der Anlegen / Bearbeiten-Seite sind (Inhalt & Auszug). Mir ist klar, dass Inhalt keine Metabox ist.
- Dieses Thema wurde geändert vor 5 Jahren, 2 Monaten von mumbomedia.
- Dieses Thema wurde geändert vor 5 Jahren, 2 Monaten von mumbomedia.
- Dieses Thema wurde geändert vor 5 Jahren, 2 Monaten von mumbomedia.
-
Es scheint wohl mit wp_editor zu gehen, man muss allerdings explizit die Quicktags mittels des dritten Parameters deaktivieren.
Beispiel:
wp_editor( $content, 'editor-id', array( 'media_buttons'=>false, 'textarea_rows'=>5, 'tinymce' => array( 'toolbar1' => 'bold, italic, strikethrough, | removeformat',sollen 'toolbar2' => '', 'toolbar3' => '', ), '<strong>quicktags'=>false</strong> ) );
In dem Beispiel habe ich die Media-Buttons deaktiviert, da ich diese in dem Kontext nicht benötige. Falls benötigt den Wert auf true ändern.
Mittels toolbar1 -> toolbar3 können die Zeilen mit dem jeweilgen Tinymce-Buttons konfiguriert werden.
Das wichtigste ist aber ‚quicktags’=>false womit die Quicktags deaktiviert werden.- Diese Antwort wurde geändert vor 5 Jahren, 2 Monaten von mumbomedia.
- Diese Antwort wurde geändert vor 5 Jahren, 2 Monaten von mumbomedia.
danke für die Info – dann markiere ich das Thema als gelöst.
Nein, das Problem ist nicht gelöst.
Wenn man nämlich die Standardeinstellungen des Editors (d.h. man lässt den optionalen Parameter $settings weg) nutzt (Quicktags aktiv) werden diese über der Metabox angezeigt.Es werden zwar in der Doku einige Hooks genannt, die man nutzen kann um mehrere Tinymce-Instanzen zu haben. Wie man diese allerdings nutzt ist nicht klar.
Da es wohl vorerst nicht geht, habe ich nun nur eine Metabox in der alle Tinymce-Instanzen über wp_editor eingebunden sind.
Es wäre allerdings auch nicht verkehrt wenn jeder Eingabebereich eine eigene Metabox wäre, da der Nutzer diese nach seinen Vorlieben anordnen kann und somit mehr Usability gegeben wäre.
Irgendwie zäumst du das Pferd von hinten auf, indem du erst von einem Bug-Ticket zu einem Problem löst, zu dem du dann eine Lösung präsentiert und am Ende die Frage stellst, was eigentlich die Lösung sein könnte. Daraus entsteht sehr schnell ein XY-Problem – du fragst nach einer Lösung zu X, obwohl dein Problem eigentlich Y ist. Der richtige Weg wäre deshalb, wenn du erst einmal erklärst, was du versuchst und wie du bisher das Thema angegangen bist. Ein Einblick in den Code, z.B. über ein GitHub Repo, wäre hilfeicher als ein etwas willkürlicher Code-Auszug, von dem wir kaum nachvollziehen können, wo du ihn einsetzt.
Hier in Supportforum beantworten wir hauptsächlich Anwendungsfragen. Mit Programmierfragen bist du bei https://wordpress.stackexchange.com/ grundsätzlich besser aufgehoben.
Übrigens habe ich mir gerade mal angeschaut, ob ich mit Advanced Custom Fields mehrere Metaboxen mit unabhängigen WYSIWYG-Feldern aufsetzen kann. Dort ist das kein Problem und mit wenigen Mausklicks erledigt. Grundsätzlich sollte die Möglichkeit also bestehen.
Danke für den Hinweis.
Das Plugin schau ich mir mal an.
Vielleicht bekomme ich ja so raus, wie man das mit mehreren Metaboxen macht.Wenn du dabei ist, schau dir auch mal CMB2 an.
Jetzt verstehe ich was die Doku meint.
Wenn man mehrere Metaboxen mit Tinymce-Editor hat, muss man noch zusätzliches JS einbinden, damit die Instanz beim Verschieben neu initialisiert wird, da der Editor nach dem Verschieben nicht mehr funktioniert.
Hierfür kann einer der genannten Hooks genutzt werden.
- Das Thema „Wie binde ich mehrere Tinymce Instanzen in Metaboxen ein“ ist für neue Antworten geschlossen.