Erstellen einer wp_editor-Instanz mit benutzerdefinierten tinyMCE-Schaltflächen

Gibt es eine Möglichkeit, wp_editor() mit benutzerdefinierten tinyMCE-Schaltflächen zu definieren?

Mir ist aufgefallen, dass die wp_editor-functionsreferenz erwähnt, dass eines der $settings Argumente tinymce (array) (optional) Load TinyMCE, can be used to pass settings directly to TinyMCE using an array() .

Meine Seite verwendet verschiedene Instanzen und ich möchte bestimmten Instanzen bestimmte Schaltflächen hinzufügen.

Beispielsweise,

 Instance #1 : Standard buttons Instance #2 : bold, italic, ul + (custom) pH, temp Instance #3 : bold, italic, ul + (custom) min_size, max_size 

Weiß jemand, wie ich das machen würde, wenn ich die Buttons bereits als tinyMCE plugins gemäß diesem Tutorial registriert habe?


BEARBEITEN

Hier ist der Code, den ich in meiner Plugin-Datei verwende, damit das funktioniert:

 function add_SF_buttons() { 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_SF_buttons_plugins'); } } function add_SF_buttons_plugins($plugin_array) { $plugin_array['pH'] = $this->plugin_url . '/js/tinymce_buttons/pH.js'; $plugin_array['pH_min'] = $this->plugin_url . '/js/tinymce_buttons/pH_min.js'; $plugin_array['pH_max'] = $this->plugin_url . '/js/tinymce_buttons/pH_max.js'; return $plugin_array; } 

 if (isset($SpeciesProfile)) { add_action( 'init' , array (&$SpeciesProfile, 'register_species' )); add_action( 'init' , array( &$SpeciesProfile, 'register_species_taxonomies' )); add_action( 'init', array (&$SpeciesProfile, 'add_SF_buttons' )); } 

  'bold, italic, ul, pH, pH_min', "media_buttons" => false, "textarea_rows" => 8, "tabindex" => 4 ) ); ?> 

Leider funktioniert das nicht – der obige Editor zeigt einfach die gleichen Schaltflächen wie jede andere Instanz auf der Seite an.


Danke im Voraus,

Solutions Collecting From Web of "Erstellen einer wp_editor-Instanz mit benutzerdefinierten tinyMCE-Schaltflächen"

Sie hatten es ziemlich, laut der Beschreibung.

Hier ist, was Sie möglicherweise für Instanzen 2 und 3 suchen (zum Beispiel 1 können Sie die Einstellungen leer lassen, um die Standard-Schaltflächen zu erhalten):

Instanz 2:

 wp_editor( $distribution, 'distribution', array( 'media_buttons' => false, 'textarea_rows' => 8, 'tabindex' => 4, 'tinymce' => array( 'theme_advanced_buttons1' => 'bold, italic, ul, pH, temp', ), ) ); 

Instanz 3 (zeigt jede der 4 Zeilen an, die Sie für TinyMCE festlegen können):

 wp_editor( $distribution, 'distribution', array( 'media_buttons' => false, 'textarea_rows' => 8, 'tabindex' => 4, 'tinymce' => array( 'theme_advanced_buttons1' => 'bold, italic, ul, min_size, max_size', 'theme_advanced_buttons2' => '', 'theme_advanced_buttons3' => '', 'theme_advanced_buttons4' => '', ), ) ); 

Ich empfehle Ihnen, die Datei wp-includes/class-wp-editor.php (speziell die function editor_settings in Zeile 126) zu editor_settings um zu verstehen, wie WP die Einstellungen analysiert, die Sie in der function wp_editor () verwenden. Überprüfen Sie diese Seite auch , um mehr über die functionalität von TinyMCE und dessen Init-Optionen zu erfahren (was meiner Meinung nach nicht vollständig von WP unterstützt wird).

Sie können die Parameter über das Array in der function wp_editor () einstellen. ein Beispiel

 $settings = array( 'tinymce' => array( 'setup' => 'function (ed) { tinymce.documentBaseURL = "' . get_admin_url() . '"; }', ), 'quicktags' => TRUE, 'editor_class' => 'frontend-article-editor', 'textarea_rows' => 25, 'media_buttons' => TRUE, ); wp_editor( $content, 'article_content', $settings ); 

Sie können die Werte über Array im Param ‘tinymce’, ‘tinymce’ => true, // laden TinyMCE, können verwendet werden, um Einstellungen direkt an TinyMCE mit einem Array zu übergeben () Es ist auch möglich, über die Parameter von Schaltflächen: theme_advanced_buttons1 , theme_advanced_buttons2 , theme_advanced_buttons3 , theme_advanced_buttons4

 array( 'theme_advanced_buttons1' => 'bold, italic, ul, pH, temp' ) 

Auch können Sie über Filter Hook benutzerdefinierte Schaltflächen erstellen, auch ein Beispiel

 function fb_change_mce_options($initArray) { // Comma separated string od extendes tags // Command separated string of extended elements $ext = 'pre[id|name|class|style],iframe[align|longdesc|name|width|height|frameborder|scrolling|marginheight|marginwidth|src]'; if ( isset( $initArray['extended_valid_elements'] ) ) { $initArray['extended_valid_elements'] .= ',' . $ext; } else { $initArray['extended_valid_elements'] = $ext; } // maybe; set tiny paramter verify_html //$initArray['verify_html'] = false; return $initArray; } add_filter( 'tiny_mce_before_init', 'fb_change_mce_options' ); 

Sie können die Tasten auch direkt filtern. Jede Zeile hat einen jeden Filter: mce_buttons , mce_buttons_2 , mce_buttons_3 , mce_buttons_4

Die folgenden Parameter sind die Voreinstellung für das Beispiel auf Hook: tiny_mce_before_init

 'mode' => 'specific_textareas' 'editor_selector' => 'theEditor' 'width' => '100%' 'theme' => 'advanced' 'skin' => 'wp_theme' 'theme_advanced_buttons1' => 'bold,italic,strikethrough,|,bullist,numlist,blockquote,|,justifyleft,justifycenter,justifyright,|,link,unlink,wp_more,|,spellchecker,fullscreen,wp_adv' 'theme_advanced_buttons2' => 'formatselect,underline,justifyfull,forecolor,|,pastetext,pasteword,removeformat,|,media,charmap,|,outdent,indent,|,undo,redo,wp_help' 'theme_advanced_buttons3' => '' 'theme_advanced_buttons4' => '' 'language' => 'de' 'spellchecker_languages' => 'English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,+German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv' 'theme_advanced_toolbar_location' => 'top' 'theme_advanced_toolbar_align' => 'left' 'theme_advanced_statusbar_location' => 'bottom' 'theme_advanced_resizing' => true 'theme_advanced_resize_horizontal' => false 'dialog_type' => 'modal' 'relative_urls' => false 'remove_script_host' => false 'convert_urls' => false 'apply_source_formatting' => false 'remove_linebreaks' => true 'gecko_spellcheck' => true 'entities' => '38,amp,60,lt,62,gt' 'accessibility_focus' => true 'tabfocus_elements' => 'major-publishing-actions' 'media_strict' => false 'paste_remove_styles' => true 'paste_remove_spans' => true 'paste_strip_class_attributes' => 'all' 'wpeditimage_disable_captions' => false 'plugins' => 'safari,inlinepopups,spellchecker,paste,wordpress,media,fullscreen,wpeditimage,wpgallery,tabfocus' 

Unter diesem Link finden Sie weitere Informationen zu diesem Filter.

Nur um dies zu aktualisieren, wie ich in den Wp-Quelldateien graben musste

 $settings = array( 'tinymce' => array( 'toolbar1' => 'bold, italic', 'toolbar2' => '', ), 'wpautop' => false, 'media_buttons' => false, ); 

Ich denke, das hat sich mit Tinymce 4 geändert.