在WordPress插件中调用TinyMCE

cho*_*ise 38 javascript php wordpress plugins tinymce

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

我的后端脚本中有一个textarea,并希望将此区域变为TinyMCE WYSIWYG可编辑字段.有没有办法做到这一点?

wysiwyg演示截图

此代码对我不起作用:

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

它显示了javascript错误

f is undefined
Run Code Online (Sandbox Code Playgroud)

Firebug截图: TinyMCE错误

这也不起作用:

<textarea class="theEditor" id="videogalerie-add_description" name="videogalerie-add_description"></textarea>
Run Code Online (Sandbox Code Playgroud)

Kev*_*ary 36

使用wp_editor()函数在WordPress 3.3中更容易做到这一点.

我正在开发一个插件,将TinyMCE实例添加到主题选项页面.这是它的样子:

// Add TinyMCE visual editor
wp_editor( $content, $id );
Run Code Online (Sandbox Code Playgroud)

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


And*_*ndy 11

Camden已经回答了这个问题,但是如果有人需要完整的代码...请务必挂钩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);
}


}
Run Code Online (Sandbox Code Playgroud)

然后在模板中的某处插入常规textarea:

<textarea id="intro"></textarea>
Run Code Online (Sandbox Code Playgroud)


小智 7

以下示例适用于我.只需确保在$ a ["elements"]变量中使用要选择的textarea的id.

假设你有一个id为'intro'的textarea:

// 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);
}
Run Code Online (Sandbox Code Playgroud)

?>