Aggiungere pulsanti quicktag all'editor HTML
Sto cercando di capire come modificare l'editor HTML in WordPress; nell'immagine qui sotto puoi vedere uno screenshot dell'editor con i pulsanti in alto. È possibile aggiungere nuovi pulsanti? Vorrei aggiungere un pulsante che inserisca i tag "" e alcuni tag di shortcode personalizzati. So che non è impossibile, ma qualcuno sa come farlo?

Se diventa troppo difficile e complicato, puoi semplicemente aggiungere nuovi pulsanti utilizzando jQuery. Basta clonare un pulsante esistente o crearne uno nuovo e aggiungerlo alla barra degli strumenti dell'editor. Puoi racchiudere il javascript in una funzione php ed eseguirlo nel footer dell'amministrazione o simili.
Oppure puoi utilizzare la funzione edButton. Ecco un esempio veloce e approssimativo per aggiungere pulsanti p e pre.
// Aggiungi pulsanti all'editor html
add_action('admin_print_footer_scripts','eg_quicktags');
function eg_quicktags() {
?>
<script type="text/javascript" charset="utf-8">
buttonA = edButtons.length;
edButtons[edButtons.length] = new edButton('ed_paragraph','p','<p>','</p><br />','p');
buttonB = edButtons.length;
edButtons[edButtons.length] = new edButton('ed_pre','pre','<pre lang="php">','</pre>','r');
jQuery(document).ready(function($){
jQuery("#ed_toolbar").append('<input type="button" value="p" id="ed_paragraph" class="ed_button" onclick="edInsertTag(edCanvas, buttonA);" title="p" />');
jQuery("#ed_toolbar").append('<input type="button" value="pre" id="ed_pre" class="ed_button" onclick="edInsertTag(edCanvas, buttonB);" title="pre" />');
});
</script>
<?php
}
MODIFICA: In Wordpress 3.3 (e versioni successive), l'aggiunta dei quicktag è cambiata. Tuttavia, la soluzione pigra con edButton in qualche modo funziona, anche se alcuni plugin potrebbero annullarla.
Il modo nuovo e corretto per aggiungere pulsanti all'editor html è il seguente:
// Aggiungi pulsanti all'editor html
add_action('admin_print_footer_scripts','eg_quicktags');
function eg_quicktags() {
?>
<script type="text/javascript" charset="utf-8">
/* Aggiunta di pulsanti Quicktag all'editor Wordpress vers. 3.3 e successive
* - ID HTML del pulsante (obbligatorio)
* - Visualizzazione del pulsante, attributo value="" (obbligatorio)
* - Tag di apertura (obbligatorio)
* - Tag di chiusura (obbligatorio)
* - Tasto di accesso, attributo accesskey="" per il pulsante (opzionale)
* - Titolo, attributo title="" (opzionale)
* - Priorità/posizione nella barra, 1-9 = prima, 11-19 = seconda, 21-29 = terza, ecc. (opzionale)
*/
QTags.addButton( 'eg_paragraph', 'p', '<p>', '</p>', 'p' );
QTags.addButton( 'eg_pre', 'pre','<pre lang="php">', '</pre>', 'q' );
</script>
<?php
}
Non so se QTags sia già stato aggiunto al Codex di Wordpress, quindi ho inserito i parametri richiesti nella sezione commenti del codice.

Mi sono innamorato del plugin menzionato sopra per aggiungere questi pulsanti personalizzati, dopo aver visto il codice sorgente, ho appena realizzato che il plugin funziona allo stesso modo del tuo codice qui, lo amo ancora di più ora, grazie mille, un MUST HAVE per qualsiasi file di funzioni WordPress!

La nuova versione di WordPress 3.3 ha rotto questo codice insieme a tutti i plugin che fanno la stessa cosa, se per caso trovi un altro modo apprezzeresti davvero un aggiornamento se hai la possibilità

La vecchia soluzione edbutton funziona ancora in 3.4-alpha. Solo per farti sapere che il codice è ancora lì. Ma probabilmente è deprecato, quindi sarebbe meglio usare la soluzione QTags.

Non ho trovato la documentazione nel codex, probabilmente non è ancora stata aggiunta. Ma ho trovato il file js QTags in wp-includes/js/quicktags.dev.js. La funzione edButton sta semplicemente chiamando QTags.addButton, ecco perché funziona ancora per me. Il file JS contiene una buona documentazione al suo interno.

Vedi il seguente in wp-includes/js/quicktags.dev.js
/**
* Funzione API principale per aggiungere un pulsante a Quicktags
*
* Aggiunge qt.Button o qt.TagButton in base agli argomenti. I primi tre argomenti sono sempre obbligatori.
* Per poter aggiungere pulsante(i) a Quicktags, il tuo script dovrebbe essere accodato come dipendente
* da "quicktags" e restituito nel footer. Se stai visualizzando JS direttamente da PHP,
* usa add_action( 'admin_print_footer_scripts', 'output_my_js', 100 ) o add_action( 'wp_footer', 'output_my_js', 100 )
*
* Minimo richiesto per aggiungere un pulsante che chiama una funzione esterna:
* QTags.addButton( 'my_id', 'my button', my_callback );
* function my_callback() { alert('evvai!'); }
*
* Minimo richiesto per aggiungere un pulsante che inserisce un tag:
* QTags.addButton( 'my_id', 'my button', '<span>', '</span>' );
* QTags.addButton( 'my_id2', 'my button', '<br />' );
*
* @param id string obbligatorio ID HTML del pulsante
* @param display string obbligatorio Valore del pulsante value="..."
* @param arg1 string || function obbligatorio Può essere un tag di apertura da inserire come "<span>" o una callback eseguita quando il pulsante è cliccato.
* @param arg2 string opzionale Tag di chiusura come "</span>"
* @param access_key string opzionale Tasto di accesso per il pulsante.
* @param title string opzionale Titolo del pulsante title="..."
* @param priority int opzionale Numero che rappresenta la posizione desiderata del pulsante nella toolbar. 1 - 9 = primo, 11 - 19 = secondo, 21 - 29 = terzo, ecc.
* @param instance string opzionale Limita il pulsante a una specifica istanza di Quicktags, aggiungi a tutte le istanze se non presente.
* @return mixed null o l'oggetto pulsante necessario per la retrocompatibilità.
*/
qt.addButton = function( id, display, arg1, arg2, access_key, title, priority, instance ) {

Potrebbe essere utile anche a qualcun altro...
http://scribu.net/wordpress/right-way-to-add-custom-quicktags.html

Scarica e installa il plugin HTML Editor Reloaded e vai alla pagina delle impostazioni per aggiungere i tuoi nuovi pulsanti personalizzati.

Il plugin ora è rotto. Ho fatto una ricerca su Google e ho trovato questo: http://wordpress.org/extend/plugins/post-editor-buttons-fork/. Spero che ti possa aiutare.

@its_me α Mi sono appena reso conto che tutti i plugin simili a questo non funzionano con la nuova versione di WP, persino quello Fork non funziona per me

@jasondavis ma il plugin fork ha funzionato perfettamente per me. Non stai cercando il pulsante nella scheda dell'editor HTML? (Il pulsante non apparirà nella scheda dell'editor visivo!)

Uso solo la scheda HTML, ho trovato comunque una soluzione migliore, la aggiungerò alla mia nuova domanda qui http://wordpress.stackexchange.com/questions/37849/add-custom-shortcode-button-to-editor

Puoi anche usare il plugin http://wordpress.org/extend/plugins/addquicktag/, funziona anche con i custom post type e diverse visualizzazioni per la modalità visiva, HTML e tipo di post.

Ecco il mio esempio su come aggiungere pulsanti & & all'editor di testo di WordPress
Aggiungi questo codice a functions.php e salva il file dopo aver verificato il tuo editor di testo
Spero di esserti stato utile ^^
/*-----------------------------------------------*/
/* Aggiungi Pulsanti all'Editor di Testo
/*-----------------------------------------------*/
function urban_add_quicktags() {
//verifica se lo script 'quicktags' è in uso per evitare errori
if (wp_script_is('quicktags')){
?>
<script type="text/javascript">
QTags.addButton( 'h4-subheader', 'SubHeader4', '<h4>', '</h4>', '4', 'Sottotitolo', 1 );
QTags.addButton( 'h3-subheader', 'SubHeader3', '<h3>', '</h3>', '3', 'Sottotitolo', 2 );
QTags.addButton( 'bold', '<b>', '<b>', '</b>', '3', 'Paragrafo', 3 );
</script>
<?php
}
}
//Stampa nel footer dell'amministrazione
add_action( 'admin_print_footer_scripts', 'urban_add_quicktags' );

Devi utilizzare l'API di TinyMCE per aggiungere pulsanti all'editor http://codex.wordpress.org/TinyMCE_Custom_Buttons

MODIFICA
Oh, aspetta: stai usando l'editor HTML. Il filtro qui sotto serve per aggiungere pulsanti all'editor Visual.
Quasi tutti i riferimenti che trovo suggeriscono di modificare quicktags.js
(ed è infatti quello che facevo io), ma non consiglio di modificare i file core. Ho trovato questo plugin (completamente non testato) che sostiene di permettere la modifica/aggiunta di pulsanti quicktag nell'editor HTML.
RISPOSTA ORIGINALE
Puoi aggiungere pulsanti alla Riga 1, Riga 2 o Riga 3.
Ecco un esempio di come aggiungere pulsanti alla Riga 3:
function mytheme_mce_buttons_row_3( $buttons ) {
$buttons[] = 'fontselect';
$buttons[] = 'fontsizeselect';
$buttons[] = 'code';
$buttons[] = 'sup';
$buttons[] = 'sub';
$buttons[] = 'backcolor';
$buttons[] = 'separator';
$buttons[] = 'hr';
$buttons[] = 'wp_page';
return $buttons;
}
add_filter( 'mce_buttons_3', 'mytheme_mce_buttons_row_3' );
Ovviamente, useresti 'mce_buttons_1'
per aggiungere pulsanti alla Riga 1, e 'mce_buttons_2'
per aggiungere pulsanti alla Riga 2.
Se vuoi aggiungere un tuo pulsante personalizzato, devi passare il markup del pulsante all'array, invece del solo nome del tag HTML.
