我试图在前端中添加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未添加到textarea中。尽管正在加载TinyMCE js文件。

评论

通过查看前端编辑器的代码,也许您会从中得到启发

#1 楼

好吧,多亏了wp 3.3,现在我们有了wp_editor()函数可以做到这一点:)

评论


是的,除了直接输出编辑器,而不是让您使用简码...

–random_user_name
2012年12月5日,下午3:35

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

– Tosh
2014年4月2日14:33



#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>


#3 楼

@maryisdead的答案可能是正确的,我会再给你一个提示,首先要确保页面中只有一个元素带有id =“ editor”,然后像这样设置tinymce: />
还要在JavaScript代码中使用jQuery而不是$,以确保您正在调用jQuery方法和选择器。

#4 楼

editor_selector用于类而不是ID。

您应该使用editor_selector的值作为文本区域的类名称。