it-swarm.asia

Özel bir gönderi türünde N sayısı WYSIWYG editörü almanın bir yolu var mı?

Özel bir gönderi türü için birden çok WYSIWYG editörüne sahip olmanın bir yolu var mı? Örneğin, 2 sütun düzenine sahipsem bir sütun için bir editör, diğer sütun için başka bir editör olmasını istedim.

27
Paul Sheldrake

Özel gönderi türünüzün Properties olarak adlandırıldığını söyleyin, buna benzer bir kod kullanarak ek tinyMCE düzenleyicinizi tutmak için kutuyu ekleyeceksiniz:

function register_meta_boxen() {
    add_meta_box("wysiwyg-editor-2", "Second Column", "second_column_box",
    "properties", "normal", "high");    
}
add_action('admin_menu', 'register_meta_boxen');

wysiwyg-editor-2, meta kutusunun uygulayacağı kimlik, Second Column, meta kutusunun alacağı başlık, second_column_box, meta kutusunun HTML'sini yazdıran işlevdir, properties bizim özel gönderi türümüzdür, normal, meta kutusunun konumu ve high, sayfada mümkün olduğu kadar yüksek gösterilmesi gerektiğini belirtir. (Genellikle varsayılan tinyMCE düzenleyicisinin altında).

Ardından, bunu en temel örnek olarak alarak, tinyMCE editörünü bir textareaya eklemelisiniz. Meta kutusu için HTML'yi basacak olan second_column_box fonksiyonumuzu tanımlamamız gerekiyor, bu yüzden bu iş için herhangi bir yer kadar iyi:

function second_column_box() {
    echo <<<EOT
    <script type="text/javascript">
jQuery(document).ready(function() {
    jQuery("#tinymce").addClass("mceEditor");
    if ( typeof( tinyMCE ) == "object" &&
         typeof( tinyMCE.execCommand ) == "function" ) {
        tinyMCE.execCommand("mceAddControl", false, "tinymce");
    }
});
</script>
    <textarea id="tinymce" name="tinymce"></textarea>
EOT;
}

Nasıl aşılacağından emin olmadığım birkaç sorun var. TinyMCE editörü, ideal olmayabilecek bir meta kutunun içine yerleştirilecek ve normal yazı editörünün sahip olduğu medya ekleme komutlarının yanı sıra HTML ve Görsel düzenleme modları arasında geçiş yapma özelliğine sahip olmayacak. Modları değiştirmek ilk argümanın ID olduğu bir fonksiyon olarak tanımlanmış gibi görünüyor, fakat yine de wp-tinymce betiğine kodlanmış gibi görünüyor. Bunu yapmak için yerleşik tinyMCE işlevlerini kullanmak mümkündür, ancak bu, tam tinyMCE ile temel bir textarea arasındaki tekstili, WP HTML ekleme düğmelerinden herhangi biri olmadan değiştirir.

20
nobody

Bu makaleyi Google’daki ilk sonuç olarak bulduğumdan, şu anda WP’in bu tür bir görevi yerine getirecek bir işlev sunduğunu yorumlamak istedim.

add_meta_box işlevi içinde aşağıdaki kodu ekleyin ->

wp_editor( $content, $editor_id, $settings = array() );

TinyMCE editörünü nereye eklemek istersen

Referans: wp_editor

1
ejhost

Ben sadece bir editöre sınıf niteliği olarak "TheEditor" u ekleyerek anladım:

<div style="background: #FFF; border: 1px solid #CCC;"><textarea id="my_details_field" name="my_details" class="theEditor" rows="20" style="width: 100%;"><?=get_post_meta($post->ID, 'my_details', TRUE)?></textarea></div>

Varsayılan düzenleyici tinymce, wp-admin/include/include.php içindeki wp_tiny_mce () işlevindeki bir işlevle yüklenir; Kaynağa bakın satır 1350'de. 1478 satırında bir dizi ayar var. Seçeneklerden biri, görünüşte javascript editörünün uygulanacağı textarea seçicisini belirler. Keighl'in yazdığı okuyordum onun blogunda beni göstermekteydi. Makaleyi okuyun ve belki de bir yönetici bölüm eklentisinde wp_tiny_mce () 'yi çağırmanın ve onu oluşturduğunuz ikinci bir metin alanına uygulamanın bir yolu vardır.

0
kevtrout