Özel tinyMCE düğmeleriyle wp_editor örneği oluşturma


19

wp_editor()Özel tinyMCE düğmeleriyle tanımlamanın bir yolu var mı ?

Ben wp_editor işlev başvurusu$settings bağımsız değişkenlerden biri olabileceğini belirtti tinymce (array) (optional) Load TinyMCE, can be used to pass settings directly to TinyMCE using an array().

Sayfam çok sayıda farklı örnek kullanıyor ve belirli örneklere belirli düğmeler eklemek istiyorum.

Örneğin,

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

Düğmeleri zaten bu öğretici göre tinyMCE eklentileri olarak kaydettiysem bunu nasıl yapacağımı bilen var mı ?


DÜZENLE

İşte bu çalışma almak için benim eklenti dosyasında kullanıyorum kodu:

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

Ne yazık ki, bu işe yaramaz - yukarıdaki düzenleyici sayfadaki diğer tüm örneklerle aynı düğmeleri görüntüler.


Şimdiden teşekkürler,

Yanıtlar:


13

Açıklamaya göre hemen hemen ona sahiptiniz.

Örnek 2 ve 3 için aradığınız şey (örneğin, varsayılan düğme setini almak için ayarları boş bırakabilirsiniz):

Örnek 2:

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

Örnek 3 (TinyMCE için ayarlayabileceğiniz 4 satırın her birini gösterir):

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'nin wp_editor () işlevi içinde kullandığınız ayarları nasıl ayrıştırdığını anlamak için wp-includes/class-wp-editor.phpdosyayı (özellikle editor_settingssatır 126'daki işlev) kontrol etmenizi öneririz . Ayrıca, TinyMCE'nin işlevselliği ve init seçenekleri (WP'nin tam olarak desteklediğine inanmıyorum) hakkında daha fazla bilgi edinmek için bu sayfayı kontrol edin .


Merhaba dostum. Yanıtınız için teşekkürler. Orijinal gönderime, cevabınızdan yola çıkarak işe yaraması gerektiğine inandığım bazı kodlar ekledim - ancak çalışmıyor. Bir bakabilir misin?
dunc

Kendi dizisine tinymce'ye özgü parametreleri sarmayı unuttum. Cevabı düzenledim ve sorunuza koyduğunuzu bildiğiniz diğer parametreleri ekledim. Nasıl gittiğini bilmeme izin ver?
Tomas Buteler

1
Ayrıca başkalarının (ben!) Bunu kendimiz nasıl yapacağını bilmek istediğini unutmayın, bu yüzden dunc'a ve sadece dunc'a özgü bir cevaba dönüşmemeye çalışın. İlgili WP / TinyMCE belgelerine bağlantılar ekleyebilir misiniz?
Tom J Nowell

Harika, bu işe yarıyor gibi görünüyor. Ne yazık ki düğmelerim değil, ama bu ayrı bir soru :) Teşekkürler tbuteler.
dunc

Rica ederim! @TomJNowell, önerilen okuma ile son bir paragraf ekledim, öneri için teşekkürler!
Tomas Buteler

9

wp_editor () işlevindeki dizi aracılığıyla parametreleri ayarlayabilirsiniz; bir örnek

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

Değerleri 'tinymce', 'tinymce' => true, // load TinyMCE parametresinde dizi aracılığıyla ayarlayabilirsiniz. Bir dizi () kullanarak ayarları doğrudan TinyMCE'ye geçirmek için kullanılabilir. düğmeleri: theme_advanced_buttons1, theme_advanced_buttons2, theme_advanced_buttons3,theme_advanced_buttons4

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

ayrıca özel düğmeler oluşturmak için filtre kancası ile alabilirsiniz, ayrıca bir örnek

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

ayrıca düğmeleri doğrudan filtreleyebilirsiniz; Her bir çizgi bir her bir filtreye sahip: mce_buttons, mce_buttons_2, mce_buttons_3,mce_buttons_4

aşağıdaki parametreler kancadaki örnek için varsayılan değerdir: 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'

bu filtreye ilişkin daha fazla bilgi için bu bağlantıya bakın .


7

Sadece wp kaynak dosyalarını kazmak zorunda olarak bu güncellemek için

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

Bunun Tinymce 4 ile değiştiğini düşünüyorum.


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 );
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.