कस्टम छोटेMCE बटन के साथ एक wp_editor उदाहरण बनाना


19

क्या wp_editor()कस्टम लिटिलमेसी बटन के साथ परिभाषित करने का कोई तरीका है ?

मैंने देखा है कि wp_editor फ़ंक्शन संदर्भ में उल्लेख है कि एक $settingsतर्क हो सकता है tinymce (array) (optional) Load TinyMCE, can be used to pass settings directly to TinyMCE using an array()

मेरा पृष्ठ विभिन्न उदाहरणों का उपयोग करता है और मैं कुछ बटन को कुछ उदाहरणों से जोड़ना चाहूंगा।

उदाहरण के लिए,

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

क्या किसी को पता है कि मैं यह करने के बारे में कैसे जाऊंगा अगर मैंने पहले ही बटन को इस ट्यूटोरियल के अनुसार छोटे-छोटे प्लगइन्स के रूप में पंजीकृत किया है ?


संपादित करें

इस कोड को मैं अपने प्लगइन फाइल में उपयोग कर रहा हूं ताकि यह काम कर सके:

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 ) ); ?>

दुर्भाग्य से, यह काम नहीं करता है - उपरोक्त संपादक बस पृष्ठ पर हर दूसरे उदाहरण के समान बटन प्रदर्शित करता है।


अग्रिम में धन्यवाद,

जवाबों:


13

वर्णन के अनुसार आपके पास बहुत कुछ था।

यहां वह है जो आप 2 और 3 के उदाहरणों के लिए देख रहे हैं (उदाहरण के लिए 1 आप बटन के डिफ़ॉल्ट सेट को प्राप्त करने के लिए सेटिंग्स को खाली छोड़ सकते हैं):

उदाहरण 2:

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

उदाहरण 3 (उन 4 पंक्तियों में से प्रत्येक दिखा रहा है जिन्हें आप TinyMCE के लिए सेट कर सकते हैं):

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' => '',
      ),
    )
);

मैं अनुशंसा करता हूं कि आप यह समझने के लिए कि WP wp_editor () फ़ंक्शन के अंदर उपयोग की जाने वाली सेटिंग्स को कैसे पार्स करता है, wp-includes/class-wp-editor.phpफ़ाइल (विशेष रूप से editor_settingsलाइन 126 पर फ़ंक्शन) की जांच करें। इसके अलावा, TinyMCE की कार्यक्षमता और इसके init विकल्पों के बारे में अधिक समझने के लिए इस पृष्ठ को देखें (जो मुझे विश्वास नहीं है कि WP समर्थन पूरी तरह से)।


हाय दोस्त। जवाब के लिए धन्यवाद। मैंने अपनी मूल पोस्ट में कुछ कोड जोड़े हैं, जो मुझे विश्वास है, आपके जवाब से देखते हुए, काम करना चाहिए - लेकिन नहीं। क्या आप देख सकते हैं?
dunc

मैं टिनिअम-विशिष्ट मापदंडों को अपने सरणी में लपेटना भूल गया। मैंने उत्तर संपादित किया है और आपके द्वारा अपने प्रश्न पर लगाए गए अन्य मापदंडों को जोड़ा है। मुझे बताएं कि यह कैसे जाता है?
टॉमस बटलर

1
यह भी ध्यान में रखें कि अन्य (मुझे!) यह जानना चाहते हैं कि यह कैसे करना है, इसलिए कोशिश करें कि ऐसे उत्तर में न जाएं जो डंक और केवल डंक के लिए विशिष्ट हो। क्या आप किसी भी प्रासंगिक WP / TinyMCE प्रलेखन के लिए लिंक जोड़ सकते हैं?
टॉम जम्मू नॉवेल

महान, यह काम करने के लिए प्रकट होता है। दुर्भाग्य से मेरे बटन नहीं हैं, लेकिन यह एक अलग सवाल है :) धन्यवाद tbuteler।
Dunc

आपका स्वागत है! @TomJNowell, मैंने अनुशंसित पढ़ने के साथ एक अंतिम पैराग्राफ़ जोड़ा है, सुझाव के लिए धन्यवाद!
टॉमस बटलर

9

आप wp_editor () फ़ंक्शन पर सरणी के माध्यम से पैरामीटर सेट कर सकते हैं; एक निर्वासन

$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 ); 

आप मान को 'परम' टिनिम्स ',' टिनिम्स '=> सच, // लोड टिनीएमसीई, में सरणी के माध्यम से सेट कर सकते हैं, एक सरणी () का उपयोग करके सीधे टिनीएमसीई में सेटिंग्स को पास करने के लिए इस्तेमाल किया जा सकता है (इसके अलावा इसके बारे में जानकारी प्राप्त करना संभव है) बटन: theme_advanced_buttons1, theme_advanced_buttons2, theme_advanced_buttons3,theme_advanced_buttons4

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

इसके अलावा आप कस्टम बटन बनाने के लिए फ़िल्टर हुक के माध्यम से प्राप्त कर सकते हैं, एक उदाहरण भी

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' );

भी आप सीधे बटन को फ़िल्टर कर सकते हैं; प्रत्येक पंक्ति एक प्रत्येक फिल्टर है: mce_buttons, mce_buttons_2, mce_buttons_3,mce_buttons_4

निम्नलिखित पैरा हुक पर उदाहरण के लिए डिफ़ॉल्ट हैं: 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'

इस फिल्टर के लिए और अधिक जानकारी के लिए इस लिंक पर देखें ।


7

बस इसे अपडेट करने के लिए जैसा कि मुझे wp सोर्स फाइल्स में खोदना था

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

मुझे लगता है कि यह टिनिम्स 4 के साथ बदल गया था।


1
$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 );
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.