Benutzerdefinierte TinyMCE-Schaltflächen hinzufügen, wenn Sie teeny_mce_before_init verwenden

Ich verwende den folgenden Code, um eine andere TinyMCE-Leiste für das Standard-WordPress-Setup zu erstellen:

if (function_exists('wp_tiny_mce')) { add_filter("mce_external_plugins", "add_myplugin_tinymce_plugin"); add_filter('mce_buttons', 'register_myplugin_button'); add_filter('teeny_mce_before_init', create_function('$a', ' $a["theme"] = "advanced"; $a["skin"] = "wp_theme"; $a["height"] = "75"; $a["width"] = "800"; $a["onpageload"] = ""; $a["mode"] = "exact"; $a["elements"] = "elm1, elm2"; $a["editor_selector"] = "mceEditor"; $a["plugins"] = "safari,inlinepopups,spellchecker"; $a["forced_root_block"] = false; $a["force_br_newlines"] = true; $a["force_p_newlines"] = false; $a["convert_newlines_to_brs"] = true; return $a;')); wp_tiny_mce(true); } 

Kann jemand mir erklären, wie man einen grundlegenden kundenspezifischen Knopf dort arbeitet?

Alles, was ich brauche, ist eine einfache Schaltfläche, die [ph_min] in den Editorbereich druckt.

Ich habe versucht, die folgenden Filter ohne Erfolg zu verwenden:

 function register_tcustom_button($buttons) { array_push($buttons, "|", "highlight"); return $buttons; } function add_tcustom_tinymce_plugin($plugin_array) { $plugin_array['highlight'] = WP_PLUGIN_URL . '/sf-tinyMCE-custom-buttons/mce/min_max_buttons/editor_plugin.js'; return $plugin_array; } add_filter("mce_external_plugins", "add_tcustom_tinymce_plugin"); add_filter('mce_buttons', 'register_tcustom_button'); 

Gibt es eine Möglichkeit, dies zu tun, oder muss ich eine manuelle TinyMCE Init schreiben, die nicht von WP unterstützt wird?

Solutions Collecting From Web of "Benutzerdefinierte TinyMCE-Schaltflächen hinzufügen, wenn Sie teeny_mce_before_init verwenden"

Ich glaube, Sie haben Ihren Shortcode bereits registriert. Jetzt müssen wir den Button initiieren. Sobald der Shortcode registriert ist [ph_min], prüfen wir, ob der Benutzer Rich-Editing verwenden kann:

 function add_highlight_button() { if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) return; if ( get_user_option('rich_editing') == 'true') { add_filter('mce_external_plugins', 'add_tcustom_tinymce_plugin'); add_filter('mce_buttons', 'register_tcustom_button'); } } add_action('init', 'add_highlight_button'); 

Jetzt können wir die Schaltfläche registrieren

 function register_tcustom_button( $buttons ) { array_push( $buttons, "|", "highlight" ); return $buttons; } 

Jetzt registrieren wir das TinyMCE Plugin

 function add_tcustom_tinymce_plugin( $plugin_array ) { $plugin_array['mylink'] = get_bloginfo( 'template_url' ) . '/script/mybuttons.js'; return $plugin_array; } 

Und dies ist für die JS-Datei, die von der vorherigen function aufgerufen wird:

 (function() { tinymce.create('tinymce.plugins.highlight', { init : function(ed, url) { ed.addButton('highlight', { title : 'Highlight', image : url+'/yourlink.png', onclick : function() { ed.selection.setContent('[ph_min]'); } }); }, createControl : function(n, cm) { return null; }, }); tinymce.PluginManager.add('highlight', tinymce.plugins.highlight); })(); 

Das ist alles.