Adăugați butoane quicktag în editorul HTML

28 sept. 2011, 04:43:34
Vizualizări: 14.8K
Voturi: 5

Î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?

Editor HTML WordPress cu butoane quicktag

0
Toate răspunsurile la întrebare 7
4

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.

28 sept. 2011 09:38:22
Comentarii

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!

JasonDavis JasonDavis
11 oct. 2011 04:55:05

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.

JasonDavis JasonDavis
4 ian. 2012 05:16:11

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.

emrahgunduz emrahgunduz
8 ian. 2012 03:09:09

Nu am găsit documentația în codex, posibil încă neadăugată. Dar am găsit fișierul JS QTags în wp-includes/js/quicktags.dev.js. Funcția edButton apelează simplu QTags.addButton, de aceea încă funcționează pentru mine. Fișierul JS conține o documentație bună.

emrahgunduz emrahgunduz
8 ian. 2012 03:15:45
0

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 ) {
15 mar. 2012 13:53:00
0

Acest lucru ar putea fi util și pentru altcineva...

http://scribu.net/wordpress/right-way-to-add-custom-quicktags.html

3 nov. 2011 14:46:11
6

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

http://wordpress.org/extend/plugins/html-editor-reloaded/

28 sept. 2011 07:27:34
Comentarii

Este uimitor, am căutat asta, mulțumesc

JasonDavis JasonDavis
28 sept. 2011 13:19:50

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 its_me
3 ian. 2012 15:25:11

@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 JasonDavis
4 ian. 2012 05:12:55

@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!)

its_me its_me
4 ian. 2012 05:22:29

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

JasonDavis JasonDavis
4 ian. 2012 06:37:08

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.

bueltge bueltge
11 iul. 2012 15:37:55
Arată celelalte 1 comentarii
0

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' );
1 oct. 2015 12:26:36
0

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

28 sept. 2011 04:57:14
0

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.

28 sept. 2011 05:32:10