
Dopo lunghe ricerche e moltissimi test, ho finalmente trovato il modo di inserire l’editor di WordPress all’interno dei plugin creati da me.
Immaginate di sviluppare un plugin WordPress, nelle cui opzioni avete una textarea dove l’utente deve poter scrivere del testo formattato. Come prima idea potrebbe venirvi in mente di utilizzare TinyMCE ed incorporare tutti i suoi centinaia di file all’interno del vostro plugin. Ma perchè fare una cosa così inutile, quando WordPress stesso ha già tutto quello che ci serve?
E’ abbastanza semplice. Per prima cosa bisogna richiamare i javascript necessari, al caricamento del plugin:
function add_my_editor(){
wp_enqueue_script('common');
wp_print_scripts('editor');
if (function_exists('add_thickbox')) add_thickbox();
wp_print_scripts('media-upload');
if (function_exists('wp_tiny_mce')) wp_tiny_mce();
wp_enqueue_script('utils');
do_action("admin_print_styles-post-php");
do_action('admin_print_styles');
}
A questo punto è sufficiente incollare il seguente codice dove volete far comparire l’editor, al posto della textarea:
<div id="postdivrich">
<?php the_editor($default_value, $id = 'content', $prev_id = 'title', $media_buttons = true, $tab_index = 2); ?>
</div>
</div>
I parametri della funzione the_editor sono i seguenti:
- il testo di default;
- l’id della textarea;
- l’id dell’elemento precedente nel form;
- boolean che indica se far comparire i pulsanti dei media;
- il numero di elemento nel form.
Se invece non vi interessa la funzionalità di caricare foto e video, potete mettere a false il valore di media_buttons, mentre il codice iniziale si alleggerisce non poco:
function add_my_editor(){
wp_print_scripts('editor');
if (function_exists('add_thickbox')) add_thickbox();
if (function_exists('wp_tiny_mce')) wp_tiny_mce();
}
L’editor visuale funziona perfettamente, solo che quello testuale (cliccando su HTML) dà dei problemi: i quicktags non funzionano. Se trovate una soluzione fatemelo sapere!
Fonte: Zen-Dreams
8 Commenti










Grande! Grazie per la spiegazione in italiano.
Ancora una volta WordPress si dimostra flessibile e ultra-personalizzabile.
Utilissimo, me lo tengo da parte
Peccato solo per la versione testuale perché è quella che preferisco abitualmente.
Già, vedrò se riesco a sistemare in qualche modo…
Utilissimo!
Lo userò in un widget che sto scrivendo per un cliente… in questo caso l’accesso all’editor HTML non è importante… credo che non sappia nemmeno cos’è
Stefano
Ah bè, a posto allora!
Ottimo e utile
Mi sarà molto utile in futuro
grazie
ottimo metodo!
sono 2 giorni che mi sto scervellando per trovare una soluzione a questo problema, solo che…
non essendo un coder a tutti gli effetti mi sto appoggiando al validissimo verve meta box plugin (un plugin che aggiunge metabox ai custom posts http://www.avenueverve.com/verve-meta-boxes/) che purtroppo non prevede il tinymce editor.
sono riuscito in qualche modo ad implementarlo inserendo il primo snippet all’inizio della funzione principale e sostituendo questa stringa:
echo ‘verve_meta_field_key.’” rows=”3″ cols=”35″>’.$meta_box_value.”;
con questa:
the_editor($f->verve_meta_field_key, $id = ‘content’, $prev_id = ‘title’, $media_buttons = true, $tab_index = 2);
il problema è che il testo che scrivo qui mi va a finire nell’editor di default del post/pagina.
dove ho sbagliato?
grazie tante!
Infatti il mio script è pensato per inserire l’editor nelle pagine dei plugins e non nella pagina di inserimento post che già ne contiene uno.
Così su due piedi ti direi di modificare $id = ‘content’ con un altro nome: $id = ‘mycontent’, ma non so se funzionerà..