Bir WordPress eklentisi TinyMCE Çağrı

8 Cevap php

Kendi WordPress eklentisi olarak TinyMCE eklemek için bir yolu var mı?

Ben arka uç komut bir textarea var ve TinyMCE WYSIWYG düzenlenebilir alana bu alanı yapmak istiyorum. Bunu yapmak için bir yolu var mı?

wysiwyg gösteri screenshot

Bu kod benim için çalışmıyor:

<?php
    wp_tiny_mce(false,array("editor_selector" => "test"));
?>
<textarea class="test" id="test" name="test"></textarea>

Bu javascript hata gösterir

f is undefined

Firebug screenshot: TinyMCE error

Bu iş ya etmedi:

<textarea class="theEditor" id="videogalerie-add_description" name="videogalerie-add_description"></textarea>

8 Cevap

Bu wp_editor() fonksiyonunu kullanarak WordPress 3.3 yapmak çok daha kolaydır.

Ben bir tema seçenekleri sayfası için TinyMCE örneği katacak bir eklenti üzerinde çalışıyorum. İşte buna benziyor ne:

// Add TinyMCE visual editor
wp_editor( $content, $id );

$content saklı içeriği ve $id alanın adıdır. Seçenekleri de daha fazla bilgi için WordPress Kodeksi kontrol, TinyMCE işlevselliğini özelleştirmek için geçirilebilir.

Camden zaten bu cevap, ama durumda birileri admin_enqueue_scripts içine çengel, admin_head içinde kanca için emin olun böyle jQuery gibi diğer komut, önce yüklemek neden olacak ... tam kodu istiyor, bu yüzden bu iş olmaz.

add_action("admin_head","load_custom_wp_tiny_mce");
function load_custom_wp_tiny_mce() {

if (function_exists('wp_tiny_mce')) {

  add_filter('teeny_mce_before_init', create_function('$a', '
    $a["theme"] = "advanced";
    $a["skin"] = "wp_theme";
    $a["height"] = "200";
    $a["width"] = "800";
    $a["onpageload"] = "";
    $a["mode"] = "exact";
    $a["elements"] = "intro";
    $a["editor_selector"] = "mceEditor";
    $a["plugins"] = "safari,inlinepopups,spellchecker";

    $a["forced_root_block"] = false;
    $a["force_br_newlines"] = true;
    $a["force_p_newlines"] = false;
    $a["convert_newlines_to_brs"] = true;

    return $a;'));

 wp_tiny_mce(true);
}


}

Sonra yere şablonu düzenli bir textarea eklemek:

<textarea id="intro"></textarea>

Aşağıdaki örnek, benim için çalışıyor. Sadece $ a ["unsurlar"] değişkeni seçmek istediğiniz textarea id kullandığınızdan emin olun.

Eğer 'intro' kimliği ile bir textarea var varsayarsak:

// attach the tiny mce editor to this textarea
if (function_exists('wp_tiny_mce')) {

  add_filter('teeny_mce_before_init', create_function('$a', '
    $a["theme"] = "advanced";
    $a["skin"] = "wp_theme";
    $a["height"] = "200";
    $a["width"] = "800";
    $a["onpageload"] = "";
    $a["mode"] = "exact";
    $a["elements"] = "intro";
    $a["editor_selector"] = "mceEditor";
    $a["plugins"] = "safari,inlinepopups,spellchecker";

    $a["forced_root_block"] = false;
    $a["force_br_newlines"] = true;
    $a["force_p_newlines"] = false;
    $a["convert_newlines_to_brs"] = true;

    return $a;'));

 wp_tiny_mce(true);
}

>

Minik mce işlevi wp_tiny_mce şimdi depricated edilir. Son wordpress için size wp_editor kullanmak istiyorum

$initial_data='What you want to appear in the text box initially';
$settings = array(
'quicktags' => array('buttons' => 'em,strong,link',),
'text_area_name'=>'extra_content',//name you want for the textarea
'quicktags' => true,
'tinymce' => true
);
$id = 'editor-test';//has to be lower case
wp_editor($initial_data,$id,$settings);

Daha talimatlar sadece wordpress içinde belgeler geçmesi için

http://codex.wordpress.org/Function_Reference/wp_editor

here ve kılavuzlardan ardından there (sayesinde bulundu this), burada wordpress 3.0.5 üzerinde çalışma yapmak bir şey başardınız nasıl:

<?php
add_action("admin_print_scripts", "js_libs");
function js_libs() {
    wp_enqueue_script('tiny_mce');
}
wp_tiny_mce( false , // true makes the editor "teeny"
    array(
        "editor_selector" => "tinymce_data"
    )
);
?>

<script type="text/javascript">
    jQuery(document).ready(function($) {
        $('a.toggleVisual').click(function() {
            console.log(tinyMCE.execCommand('mceAddControl', false, 'tinymce_data'));
        });
        $('a.toggleHTML').click(function() {
            console.log(tinyMCE.execCommand('mceRemoveControl', false, 'tinymce_data'));
        });
    });
</script>

<form method="post" action="">
<ul>
  <li>
    <span id="submit"><input class="button" type="submit"></span>
    <p id="toggle" align="right"><a class="button toggleVisual">Visual</a><a class="button toggleHTML">HTML</a></p>
  </li>
  <li><textarea style="width:100%;" class="tinymce_data" id="tinymce_data" name="tinymce_data"></textarea></li>
</ul>
</form>

Ben benzer bir sorun vardı, ve class="theEditor" (ilk başta) da bana yardım etmedi. Ben varsayılan düzenleyici (yani supports argüman 'editor' içermiyordu) içermiyordu özel yazı türünü kullanan.

Anlamına geliyordu WordPress TinyMCE kodu yoktu. Ben eklendi kez

add_action( 'admin_print_footer_scripts', 'wp_tiny_mce', 25 );

benim functions.php için (genel-template.php olarak the_editor fonksiyon koduna göre) o (class="theEditor") ile iyi çalıştı.

Test ve wordpress 3.3.1 üzerinde çalışan

işlevleri veya eklenti dosyasına eklemek.

<?php
    add_filter('admin_head','ShowTinyMCE');
    function ShowTinyMCE() {
        // conditions here
        wp_enqueue_script( 'common' );
        wp_enqueue_script( 'jquery-color' );
        wp_print_scripts('editor');
        if (function_exists('add_thickbox')) add_thickbox();
        wp_print_scripts('media-upload');
        if (function_exists('wp_tiny_mce')) wp_tiny_mce();
        wp_admin_css();
        wp_enqueue_script('utils');
        do_action("admin_print_styles-post-php");
        do_action('admin_print_styles');
    }
?>

yeni içerik ekleme için ..

<?php the_editor($id='content');?>

benim içerik düzenleme için

<?php the_editor($mySavedContent); ?>

Bu komut / css ve eklenti veya şablon dosyalarını da içinde bir TinyMCE textarea üretmek için gerekli kod tüm öfke içerecektir ..

Bu yardımcı olur umarım ..

M

Ben bu konuda sorun biraz vardı. Bütün gün arama ve kod örnekleri onlarca denedikten sonra, ben veritabanına MCE değerleri kaydetmek için Wordpress tema seçenekleri alamadım. Bundan Hiçbiri Ben bir yerde bir adım eksik muhtemelen çünkü, benim için çalışacak vs vs her şeyi, jQuery cevapları, gizli alanları, denedik.

Son olarak ben bu sayfa bulundu: http://wptheming.com/options-framework-theme/

Github & indirin yönlendirilmiş olarak yükleyin (kolay). Kurulduktan sonra, tema seçenekleri son sekme bir MCE editörü vardır. Bazı test paragraflar girin. Şimdi sayfada her şeyini dahil nasıl örneklerini görmek için download index.php dosyasını açın. Örneğin, ben footer.php açın ve kod biraz ekleyin.

Ben yapmak için gerekli tek düzenleme oldu:

<?php
$ft = of_get_option('example_editor', 'no entry');
$format_ft = wpautop( $ft, false );
echo ($format_ft);
?>

Wordpress fonksiyonu wpautop () onlar hiç wp veritabanına kaydedilir olmadığı için, paragraf etiketleri ekler. Ben MCE içeriğini görüntülemek benim altbilgisindeki bu kodu koymak.