如何在前端包含TinyMCE编辑器?


22

我试图在我的前端中添加TinyMCE编辑器,用户可以在其中发布但到目前为止还算不上运气。这是代码:

PHP:

add_action('wp_print_scripts', 'my_enqueue_scripts');

function my_enqueue_scripts() {      
        wp_enqueue_script( 'tiny_mce' );
        if (function_exists('wp_tiny_mce')) wp_tiny_mce();
}

Javascript:

jQuery(document).ready(function(){
tinyMCE.init({
        mode : "textareas",
        theme : "simple", 
        /*plugins : "autolink, lists, spellchecker, style, layer, table, advhr, advimage, advlink, emotions, iespell, inlinepopups, insertdatetime, preview, media, searchreplace, print, contextmenu, paste, directionality, fullscreen, noneditable, visualchars, nonbreaking, xhtmlxtras, template",*/
        editor_selector :"editor"
    });
});

HTML:

<textarea rows="8" cols="40" name="description" id="editor" class="required"><?php echo $description;?></textarea>

问题: Texteditor没有添加到文本区域。尽管正在加载TinyMCE js文件。


1
通过查看前端编辑器
mike23

Answers:


17

好了,多亏了wp 3.3,我们现在wp_editor()可以执行此操作了:)


1
是的,除了它直接输出编辑器,而不是允许您以简码使用它...
cale_b 2012年

4
您可以通过使用php ob_content函数以简码形式使用它。这些功能使您可以捕获变量中的输出。像这样:ob_start(); include(static :: getTemplatePath()。'/'。$ templatePath。'.php'); $ template = ob_get_contents(); ob_end_clean(); 返回$ template;
Tosh 2014年

2

editor_selector 是用于定位类,而不是ID。

另外,在使用时editor_selector,需要进行设置mode: "specific_textareas"以使其起作用。

参见http://tinymce.moxiecode.com/wiki.php/Configuration:editor_selector

因此,您的JavaScript和HTML应该如下所示:

jQuery(document).ready(function(){
tinyMCE.init({
        mode : "specific_textareas",
        theme : "simple", 
        /*plugins : "autolink, lists, spellchecker, style, layer, table, advhr, advimage, advlink, emotions, iespell, inlinepopups, insertdatetime, preview, media, searchreplace, print, contextmenu, paste, directionality, fullscreen, noneditable, visualchars, nonbreaking, xhtmlxtras, template",*/
        editor_selector :"tinymce-enabled"
    });
});

<textarea rows="8" cols="40" name="description" id="editor" class="tinymce-enabled required"><?php echo $description;?></textarea>

0

@maryisdead的答案可能是正确的,我会再给你一个提示,首先要确保页面中只有一个元素带有id =“ editor”,然后按如下所示设置tinymce:

tinyMCE.init({
    ...
    mode : "exact",
    elements : "editor"
});

还可以在JavaScript代码中使用jQuery而不是$来确保您正在调用jQuery方法和选择器。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.