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: creare Loop con query personalizzate

WordPress: creare Loop con query personalizzate

Oggi vorrei trattare un argomento abbastanza tecnico, utile a chi sviluppa plugin per WordPress, Widget o temi, ma anche a chi è solito mettere mano al template del proprio blog: creare query personalizzate con WordPress. Quando ci capita di dover interagire con il Loop principale della pagina, possiamo tranquillamente usare la solita query_posts, che ...
Un gancio per attaccarsi a WordPress

Un gancio per attaccarsi a WordPress

Con questo primo Guest Post inizia una miniserie di articoli scritti da Camu, che ci condurrà passo-passo nella personalizzazione del nostro blog WordPress. Una delle funzionalità che fanno di WordPress una piattaforma su cui sviluppare funzionalità personalizzate per il proprio sito, è la capacità di essere esteso tramite i cosiddetti plugin. Possiamo fare l'analogia con ...
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 ...
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 ...
Come creare una Newsletter con WordPress e FeedBurner

Come creare una Newsletter con WordPress e FeedBurner

Esistono tantissimi servizi di Newsletter e Mailing List, la maggior parte dei quali è a pagamento o ha dei limiti. Tra le possibilità gratuite, è bene evitare i plugin per WordPress che girano in locale, in quanto richiedono troppe risorse per inviare le email e non sono molto affidabili. Una buona soluzione free è quella ...

13 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