在WordPress插件中调用TinyMCE

2022-08-30 12:17:10

有没有办法将TinyMCE添加到我自己的WordPress插件中?

我在后端脚本中有一个文本区域,并希望将此区域设置为TinyMCE WYSIWYG可编辑字段。有没有办法做到这一点?

wysiwyg demonstration screenshot

此代码对我不起作用:

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

它显示了javascript错误

f is undefined

火虫截图:TinyMCE error

这也不起作用:

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

答案 1

在WordPress 3.3中使用wp_editor()函数要容易得多。

我正在开发一个插件,它将向主题选项页面添加TinyMCE实例。下面是它的外观:

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

其中$content是存储的内容,$id是字段的名称。还可以传递选项来自定义TinyMCE功能,请查看WordPress Codex以获取更多详细信息。


答案 2

卡姆登已经回答了这个问题,但万一有人需要完整的代码......一定要挂admin_head,挂接到admin_enqueue_scripts会导致它先加载其他脚本,比如jQuery,所以行不通。

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


}

然后在模板中的某个位置插入常规文本区域:

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