BigThink

Usare l’editor di WordPress all’interno dei nostri plugin

Editor WordPress

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:

add_filter('admin_head', 'add_my_editor');
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="poststuff">
    <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:

add_filter('admin_head', 'add_my_editor');
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

Articolo scritto da Ghido

Fondatore di BigThink.it, si occupa dello sviluppo e del coordinamento dei progetti tecnologici. Specializzato nel Marketing su Facebook e nello sviluppo di Applicazioni Social, fa consulenza e formazione ad aziende ed agenzie.

Leggi anche...

WordPress: trovare la categoria corrente e quella padre

WordPress: trovare la categoria corrente e quella padre

Chi è solito creare template per WordPress o chi si è trovato a dover modificare il proprio avrà notato che le funzioni che abbiamo a disposizione per lavorare con le categorie di WordPress non sono poi molte. Spesso bisogna, infatti, andarsi a spulciare documentazione e sorgenti, per trovare il modo di fare quello ...
WordPress: Dare agli spammer la possibilità di redimersi

WordPress: Dare agli spammer la possibilità di redimersi

Si conclude oggi la miniserie di Camu: dopo aver visto come va modificato l'.htaccess e come farlo in automatico, oggi impariamo a personalizzare la pagina di errore. Dai commenti sul mio blog alla prima puntata di questa miniserie è venuta fuori un'interessante discussione su cosa "vedono" gli spammer presenti nella lista nera quando tentano ...
WordPress: creare una sezione di post in Evidenza

WordPress: creare una sezione di post in Evidenza

Vi è mai capitato di scrivere un ottimo articolo e vederlo sparire nel tempo, senza alcuna visita o commento? Esistono varie tecniche per dare visibilità ai post più vecchi del nostro blog, che normalmente non verrebbero più letti, e portargli nuovamente visite. Possiamo usare plugin come Related Post with Thumb per mostrare gli articoli ...
WordPress: eliminare i contenuti duplicati con i Canonical link

WordPress: eliminare i contenuti duplicati con i Canonical link

Dalla versione 2.7 di WordPress è stata introdotta la paginazione dei commenti: quando un articolo ha più di un certo numero di commenti, questi verranno suddivisi su più pagine. Se avete attivato questa funzionalità sul vostro blog, si crea però un buon numero di contenuti duplicati, perchè avremo sia la pagina principale con l'articolo ...
Un aiuto ad Akismet: un plugin WordPress per bloccare gli IP

Un aiuto ad Akismet: un plugin WordPress per bloccare gli IP

Continuiamo con la miniserie di Camu: dopo l'introduzione al file .htaccess, andiamo a creare il plugin che lo modificherà. Nella serie precedente abbiamo visto quale  sia il meccanismo su cui si basano i plug-in: i ganci. Associati alle azioni che avvengono in WordPress, ad essi possono essere attaccate funzioni personalizzate che fanno ciò ...

9 Commenti

  1. utilissimo post!
    L’ho appena inserito nel plugins ch sto sviluppando

    5 luglio 2011, 17:33
  2. Luigi Barbati

    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!

    16 luglio 2010, 17:29
    • 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à..

      16 luglio 2010, 17:37
  3. Ottimo e utile :D
    Mi sarà molto utile in futuro
    grazie

    8 settembre 2009, 12:41
  4. 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

    8 settembre 2009, 10:41
    • Ah bè, a posto allora! :D

      8 settembre 2009, 13:32
  5. Utilissimo, me lo tengo da parte :)
    Peccato solo per la versione testuale perché è quella che preferisco abitualmente.

    7 settembre 2009, 16:37
    • Già, vedrò se riesco a sistemare in qualche modo…

      7 settembre 2009, 18:07
  6. Grande! Grazie per la spiegazione in italiano. ;-)
    Ancora una volta WordPress si dimostra flessibile e ultra-personalizzabile.

    7 settembre 2009, 12:17

4 Citazioni