Gibt es eine Möglichkeit, wp_editor()
mit benutzerdefinierten tinyMCE-Schaltflächen zu definieren?
Ich habe die wp_editor-Funktionsreferenz bemerkt erwähnt, dass eines der $settings
-Argumente tinymce (array) (optional) Load TinyMCE, can be used to pass settings directly to TinyMCE using an array()
sein kann.
Meine Seite verwendet eine Reihe verschiedener Instanzen und ich möchte bestimmten Instanzen bestimmte Schaltflächen hinzufügen.
Zum Beispiel,
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?
EDIT
Hier ist der Code, den ich in meiner Plugin-Datei verwende, um dies zum Laufen zu bringen:
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' ));
}
-
<?php wp_editor( $distribution, 'distribution', array( 'theme_advanced_buttons1' => 'bold, italic, ul, pH, pH_min', "media_buttons" => false, "textarea_rows" => 8, "tabindex" => 4 ) ); ?>
Leider funktioniert dies nicht - der obige Editor zeigt einfach die gleichen Schaltflächen wie jede andere Instanz auf der Seite an.
Danke im Voraus,
Sie hatten es nach der Beschreibung so ziemlich.
Hier ist, wonach Sie möglicherweise für die Instanzen 2 und 3 suchen (zum Beispiel 1 können Sie die Einstellungen leer lassen, um die Standardschaltflä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, 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, dass Sie die Datei wp-includes/class-wp-editor.php
(insbesondere die Funktion editor_settings
in Zeile 126) auschecken, um zu verstehen, wie WP die Einstellungen analysiert, die Sie in der Funktion wp_editor () verwenden. Lesen Sie auch diese Seite , um mehr über die Funktionalität von TinyMCE und seine Init-Optionen zu erfahren (von denen ich glaube, dass sie WP nicht vollständig unterstützen).
sie können die Parameter über ein Array in der Funktion 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 ein Array im Parameter 'tinymce' einstellen, 'tinymce' => true, // load TinyMCE, Sie können die Einstellungen über ein Array () direkt an TinyMCE übergeben Schaltflächen: theme_advanced_buttons1
, theme_advanced_buttons2
, theme_advanced_buttons3
, theme_advanced_buttons4
array( 'theme_advanced_buttons1' => 'bold, italic, ul, pH, temp' )
man kann auch per filterhaken eigene buttons 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 Schaltflächen auch direkt filtern. Jede Zeile hat einen Filter: mce_buttons
, mce_buttons_2
, mce_buttons_3
, mce_buttons_4
die folgenden Parameter sind die Standardeinstellung für das Beispiel am 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'
weitere Informationen zu diesem Filter finden Sie auf diesem Link .
Nur um dies zu aktualisieren, musste ich in den wp-Quelldateien graben
$settings = array(
'tinymce' => array(
'toolbar1' => 'bold, italic',
'toolbar2' => '',
),
'wpautop' => false,
'media_buttons' => false,
);
Ich denke, das hat sich mit Tinymce 4 geändert.
$args = array(
'tinymce' => array(
'toolbar1' => 'bold,italic,underline,separator,alignleft,aligncenter,alignright,separator,link,unlink,undo,redo',
'toolbar2' => '',
'toolbar3' => '',
),
);
wp_editor( $content, $editor_id, $args );