Ho un tema sviluppato su misura e davvero complesso. Una delle cose che ho sono più aree di contenuto in cui gli utenti possono specificare il contenuto per schede specifiche. Carico più istanze dell'editor WordPress attraverso la wp_editor()
funzione. Funziona perfettamente. (Questo è tutto dal lato amministratore, nel tipo di post "Pagina")
Tuttavia, ho iniziato a apportare alcuni miglioramenti, tra cui la possibilità di aggiungere / rimuovere schede in modo dinamico (prima, ho caricato 6 editor sulla pagina). Gli utenti possono avere 1-7 schede.
Quando gli utenti aggiungono una scheda, è necessario aggiungere un'istanza dell'editor alla pagina. Tuttavia, indipendentemente da ciò che provo, non riesco a caricarlo e visualizzarlo correttamente.
Ecco le 2 cose che ho provato finora:
- Crea un file php con il bootstrap di amministrazione incluso, quindi carica l'editor
wp_editor()
. Faccio quindi un jQuery$.load
per chiamare la pagina e includere l'HTML risultante nell'area che deve essere visualizzata. Questo non funziona davvero, tuttavia, poiché i pulsanti di formattazione degli editor scompaiono (vale la pena notare che tirando la pagina direttamente in su, l'editor visualizza e funziona perfettamente) - Ha caricato l'editor sulla pagina, all'interno di un div nascosto, quindi una volta aggiunta una scheda, usa jquery per spostarlo in posizione. Questo carica l'editor in tatto, ma non è possibile utilizzare nessuno dei pulsanti dell'editor (vengono visualizzati, ma non fanno nulla) e non è possibile posizionare il cursore nell'area di testo (curioso, tuttavia, che il passaggio alla modalità HTML consente la digitazione e alcune interazioni con i pulsanti della modalità HTML)
Quindi la domanda è: qualcuno ha avuto fortuna ad aggiungere editor tramite le chiamate AJAX? Qualche consiglio?
$('#sph-tabs-section-tab'+newTab).load('/wp-admin/admin-ajax.php?action=sph_add_editor');
e poi ho aggiunto una funzione che ritorna wp_editor()
. Viene chiamato senza problemi, ma restituisce solo l'editor senza pulsanti. (esattamente gli stessi risultati del punto 1 nel PO)
admin-ajax.php
? Se non crea una funzione con il tuo codice, chiamala tramiteadmin-ajax.php