Domanda

Ho seguito un tutorial su Nettuts su come aggiungere un pulsante personalizzato per TinyMCE ( http://net.tutsplus.com/tutorials/wordpress/wordpress-shortcodes-the-right-way/ )

E le grandi opere e tutto, ma voglio aggiungere molti pulsanti e mi chiedo se c'è un modo intelligente per fare questo senza dover duplicare tutto il codice più e più volte.

Ecco il codice che uso per l'aggiunta di un pulsante:

add_shortcode("quote", "quote");  
function quote( $atts, $content = null ) {  
    return '<div class="right text">"'.$content.'"</div>';  
}

add_action('init', 'add_button');  
function add_button() {  
   if ( current_user_can('edit_posts') &&  current_user_can('edit_pages') )  
   {  
     add_filter('mce_external_plugins', 'add_plugin');  
     add_filter('mce_buttons_3', 'register_button');  
   }  
}  
function register_button($buttons) {  
   array_push($buttons, "quote");  
   return $buttons;  
}  
function add_plugin($plugin_array) {  
   $plugin_array['quote'] = get_bloginfo('template_url').'/js/customcodes.js';  
   return $plugin_array;  
}

E poi ho creare un file customcodes.js con questo codice in:

(function() {  
    tinymce.create('tinymce.plugins.quote', {  
        init : function(ed, url) {  
            ed.addButton('quote', {  
                title : 'Add a Quote',  
                image : url+'/image.png',  
                onclick : function() {  
                     ed.selection.setContent('[quote]' + ed.selection.getContent() + '[/quote]');  

                }  
            });  
        },  
        createControl : function(n, cm) {  
            return null;  
        },  
    });  
    tinymce.PluginManager.add('quote', tinymce.plugins.quote);  
})();

Così ancora una volta, come posso aggiungere più pulsanti, senza dover fare tutto questo codice per ogni nuovo pulsante?

Grazie :) Sebastian

È stato utile?

Soluzione

Per prima cosa aggiungere i pulsanti aggiuntivi all'interno dei pulsanti callback ..

function register_button($buttons) {  
   array_push($buttons, "quote","wpse-rules");  
   return $buttons;  
}

Quindi aggiungere la funzione tasti supplementari all'interno del plugin javascript ..

    init : function(ed, url) {  
        ed.addButton('quote', {  
            title : 'Add a Quote',  
            image : url+'/image.png',  
            onclick : function() {  
                 ed.selection.setContent('[quote]' + ed.selection.getContent() + '[/quote]');  
            }  
        });
        ed.addButton('wpse-rules', {  
            title : 'WPSE Rules',  
            image : url+'/image.png',  
            onclick : function() {  
                 alert( 'WPSE Rules!' ); 
            }  
        });  
    },

E così via, per eventuali pulsanti aggiuntivi che si desidera ..

Altri suggerimenti

Prendere una lettura attraverso e / o scaricare i file nel mio esercitazione su questo . Il motivo per cui vi suggerisco questo è perché ho messo tutto in a una classe in modo che in realtà non è necessario scrivere il codice più e più volte per ogni pulsante!

Ora, la classe non fondamentalmente scrivere il codice per voi ogni volta che si crea un'istanza sul lato WordPress delle cose, ma sarà ancora bisogno di scrivere le funzionalità javascript per ogni pulsante.

La creazione di un pulsante è lo stesso processo, non importa quanti avete bisogno. La funzione di ogni tasto sta per essere unico, che è il motivo per cui è necessario un invito javascript unico per ogni pulsante.

Guardate quicktag di wordpress, se si desidera aggiungere pulsanti sulla sezione editor di testo (non funziona da parte visual editor però)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top