Adăugați butoane quicktag în editorul HTML
Încerc să aflu cum să modific editorul HTML în WordPress; în imaginea de mai jos puteți vedea o captură de ecran a editorului și butoanele de sus. Este posibil să adăugați butoane noi? Aș dori să adaug un buton care va insera tag-uri "" și unele tag-uri de shortcode personalizate. Știu că nu este imposibil, dar știe cineva cum să fac asta?

Dacă devine prea greu și complicat, poți pur și simplu să adaugi butoane noi folosind jQuery. Pur și simplu clonează un buton existent sau creează unul nou, și atașează-l la bara de unelte a editorului. Poți încadra javascript-ul într-o funcție php, și să-l rulezi în subsolul adminului sau ceva de genul.
Sau poți folosi funcția edButton. Iată un exemplu rapid și improvizat pentru adăugarea butoanelor p și pre.
// Adaugă butoane la editorul 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
}
EDIT: În Wordpress 3.3 (și mai sus), adăugarea quicktag-urilor s-a schimbat. Totuși, soluția rapidă cu edButton funcționează cumva, dar unele plugin-uri o pot anula.
Noul și corect mod de a adăuga butoane noi la editorul html este următorul:
// Adaugă butoane la editorul html
add_action('admin_print_footer_scripts','eg_quicktags');
function eg_quicktags() {
?>
<script type="text/javascript" charset="utf-8">
/* Adăugarea butoanelor Quicktag la editor Wordpress vers. 3.3 și mai sus
* - ID-ul HTML al butonului (obligatoriu)
* - Afișarea butonului, atributul value="" (obligatoriu)
* - Tag-ul de deschidere (obligatoriu)
* - Tag-ul de închidere (obligatoriu)
* - Tasta de acces, atributul accesskey="" pentru buton (opțional)
* - Titlul, atributul title="" (opțional)
* - Prioritate/poziție pe bară, 1-9 = primul, 11-19 = al doilea, 21-29 = al treilea, etc. (opțional)
*/
QTags.addButton( 'eg_paragraph', 'p', '<p>', '</p>', 'p' );
QTags.addButton( 'eg_pre', 'pre','<pre lang="php">', '</pre>', 'q' );
</script>
<?php
}
Nu știu dacă QTags a fost adăugat în Wordpress Codex încă, așa că am adăugat parametrii necesari în secțiunea de comentarii a codului.

M-am îndrăgostit de plugin-ul menționat mai sus pentru adăugarea acestor butoane personalizate. După ce am verificat codul sursă, am realizat că plugin-ul funcționează la fel ca codul tău prezentat aici. Acum îl iubesc și mai mult, mulțumesc foarte mult! Este OBLIGATORIU pentru orice fișier de funcții WordPress!

Noua versiune WordPress 3.3 a stricat această funcționalitate împreună cu toate plugin-urile care o implementau. Dacă ai găsit o altă metodă, aș aprecia foarte mult o actualizare dacă ai ocazia.

Soluția veche cu edbutton funcționează în 3.4-alpha. Doar pentru a te informa că codul este încă prezent. Dar probabil este depreciat, așa că ar fi mai bine să folosești soluția QTags.

Vezi următoarele în wp-includes/js/quicktags.dev.js
/**
* Funcția principală a API-ului pentru adăugarea unui buton în Quicktags
*
* Adaugă qt.Button sau qt.TagButton în funcție de argumente. Primele trei argumente sunt întotdeauna obligatorii.
* Pentru a putea adăuga buton(e) în Quicktags, scriptul tău ar trebui să fie încărcat ca dependent
* de "quicktags" și să fie afișat în subsol. Dacă afișezi JS direct din PHP,
* folosește add_action( 'admin_print_footer_scripts', 'output_my_js', 100 ) sau add_action( 'wp_footer', 'output_my_js', 100 )
*
* Minimul necesar pentru a adăuga un buton care apelează o funcție externă:
* QTags.addButton( 'my_id', 'my button', my_callback );
* function my_callback() { alert('yeah!'); }
*
* Minimul necesar pentru a adăuga un buton care inserează un tag:
* QTags.addButton( 'my_id', 'my button', '<span>', '</span>' );
* QTags.addButton( 'my_id2', 'my button', '<br />' );
*
* @param id string obligatoriu ID-ul HTML al butonului
* @param display string obligatoriu Valoarea butonului value="..."
* @param arg1 string || function obligatoriu Fie un tag de început de inserat precum "<span>" fie o funcție callback care este executată la click pe buton.
* @param arg2 string opțional Tag de încheiere precum "</span>"
* @param access_key string opțional Tasta de acces pentru buton.
* @param title string opțional Titlul butonului title="..."
* @param priority int opțional Număr reprezentând poziția dorită a butonului în bara de unelte. 1 - 9 = primul, 11 - 19 = al doilea, 21 - 29 = al treilea, etc.
* @param instance string opțional Limitează butonul la o anumită instanță a Quicktags, adaugă la toate instanțele dacă nu este prezent.
* @return mixed null sau obiectul buton necesar pentru compatibilitate inversă.
*/
qt.addButton = function( id, display, arg1, arg2, access_key, title, priority, instance ) {

Acest lucru ar putea fi util și pentru altcineva...
http://scribu.net/wordpress/right-way-to-add-custom-quicktags.html

Descarcă și instalează HTML Editor Reloaded Plugin și mergi la paginile de setări unde poți adăuga propriile butoane noi.

Plugin-ul nu funcționează acum. Așa că am căutat pe Google și am găsit asta: http://wordpress.org/extend/plugins/post-editor-buttons-fork/. Sper să te ajute.

@its_me α Tocai am realizat că toate plugin-urile similare cu acesta nu funcționează cu noua versiune de WP, chiar și Fork nu funcționează pentru mine

@jasondavis dar plugin-ul de fork a funcționat perfect pentru mine. Nu cauți butonul în fila editorului HTML? (Butonul nu va apărea în fila editorului vizual!)

Eu folosesc doar fila HTML, am găsit însă o soluție mai bună, o voi adăuga în noua mea întrebare aici http://wordpress.stackexchange.com/questions/37849/add-custom-shortcode-button-to-editor

Poți folosi și plugin-ul http://wordpress.org/extend/plugins/addquicktag/, funcționează și cu tipuri personalizate de postări și vederi diferite pentru modul vizual, modul HTML și tipul de postare.

Iată exemplul meu despre cum să adaugi butoane & & în editorul de text WP
adaugă acest cod în functions.php și salvează fișierul după ce verifici editorul de text
Sper să te ajute ^^
/*-----------------------------------------------*/
/* Adaugă Butoane în Editorul de Text
/*-----------------------------------------------*/
function urban_add_quicktags() {
//verifică dacă scriptul 'quicktags' este în uz pentru a evita erorile
if (wp_script_is('quicktags')){
?>
<script type="text/javascript">
QTags.addButton( 'h4-subheader', 'SubHeader4', '<h4>', '</h4>', '4', 'Sub Header', 1 );
QTags.addButton( 'h3-subheader', 'SubHeader3', '<h3>', '</h3>', '3', 'Sub Header', 2 );
QTags.addButton( 'bold', '<b>', '<b>', '</b>', '3', 'Paraphraph', 3 );
</script>
<?php
}
}
//Adaugă în footer-ul admin
add_action( 'admin_print_footer_scripts', 'urban_add_quicktags' );

Trebuie să folosești API-ul TinyMCE pentru a adăuga butoane în editor http://codex.wordpress.org/TinyMCE_Custom_Buttons

EDITARE
Oh, stai: tu folosești editorul HTML. Filtru de mai jos este pentru adăugarea de butoane în editorul Vizual.
Aproape fiecare referință pe care o găsesc instruiește să editezi quicktags.js
(și de fapt este ceea ce obișnuiam să fac), dar eu nu recomand editarea fișierelor de bază. Am găsit acest (complet netestat) Plugin care pretinde că permite modificarea/adaugarea de butoane quicktag în editorul HTML.
RĂSPUNS ORIGINAL
Poți adăuga butoane pe Rândul 1, Rândul 2 sau Rândul 3.
Iată un exemplu de cum să adaugi butoane pe Rândul 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' );
Evident, ai folosi 'mce_buttons_1'
pentru a adăuga butoane pe Rândul 1 și 'mce_buttons_2'
pentru a adăuga butoane pe Rândul 2.
Dacă vrei să adaugi propriul tău buton arbitrar, trebuie să transmiți marcajul butonului în array, nu doar numele tag-ului HTML.
