不使用wp_EDITOR时不定义tinymce

时间:2015-01-19 作者:myol

我使用jQuery tinyMCE用微型MCE编辑器填充动态生成的文本区域。

当我使用WordPress时wp_editor 函数调用jQuery版本之前,我没有任何问题。如果我不这样做,我就会得到;

未捕获引用错误:未定义tinymce

作为一个可怕的黑客,我用过;

wp_editor(\'hacky\', \'hackhack\');

wp_register_script(\'admin_js\', get_template_directory_uri() . \'/assets/js/admin.min.js\', array());
wp_enqueue_script(\'admin_js\');
它允许jQuery TinyMCE工作。我希望消除这种情况。认为WP没有加载jQuery版本(并且不知道获取WP-includes) 我用过;

?><script type="text/javascript"src="//cdnjs.cloudflare.com/ajax/libs/tinymce/4.1.7/jquery.tinymce.min.js"></script><?php

wp_register_script(\'admin_js\', get_template_directory_uri() . \'/assets/js/admin.min.js\', array());
wp_enqueue_script(\'admin_js\');
但这似乎不是问题所在。似乎WP版本加载了我所需的文件,但我不知道我需要什么文件。

5 个回复
最合适的回答,由SO网友:myol 整理而成

在同事的帮助下,我们成功了class-wp-editor.php

以下是初始化jQuery tinyMCE所需的脚本,如果wp_editor 尚未预先使用(调用这些脚本)。

// Get the necessary scripts to launch tinymce
$baseurl = includes_url( \'js/tinymce\' );
$cssurl = includes_url(\'css/\');

global $tinymce_version, $concatenate_scripts, $compress_scripts;

$version = \'ver=\' . $tinymce_version;
$css = $cssurl . \'editor.css\';

$compressed = $compress_scripts && $concatenate_scripts && isset($_SERVER[\'HTTP_ACCEPT_ENCODING\'])
    && false !== stripos($_SERVER[\'HTTP_ACCEPT_ENCODING\'], \'gzip\');

if ( $compressed ) {
    echo "<script type=\'text/javascript\' src=\'{$baseurl}/wp-tinymce.php?c=1&amp;$version\'></script>\\n";
} else {
    echo "<script type=\'text/javascript\' src=\'{$baseurl}/tinymce.min.js?$version\'></script>\\n";
    echo "<script type=\'text/javascript\' src=\'{$baseurl}/plugins/compat3x/plugin.min.js?$version\'></script>\\n";
}

add_action( \'wp_print_footer_scripts\', array( \'_WP_Editors\', \'editor_js\' ), 50 );
add_action( \'wp_print_footer_scripts\', array( \'_WP_Editors\', \'enqueue_scripts\' ), 1 );

wp_register_style(\'tinymce_css\', $css);
wp_enqueue_style(\'tinymce_css\');
这将创建一个动态的tinyMCE编辑器,没有在视觉/文本之间切换的选项卡,也没有媒体上载功能。我必须手动创建这些按钮以及每个按钮的相应jQuery。

编辑器也使用所需的css进行编辑。

EDIT:

更优雅的解决方案,但回退更少(无版本控制)

$js_src = includes_url(\'js/tinymce/\') . \'tinymce.min.js\';
$css_src = includes_url(\'css/\') . \'editor.css\';

// wp_enqueue doesn\'t seem to work at all
echo \'<script src="\' . $js_src . \'" type="text/javascript"></script>\';

wp_register_style(\'tinymce_css\', $css_src);
wp_enqueue_style(\'tinymce_css\');

SO网友:dave

值得一提的是,我最近遇到了这个问题,在站点迁移之后,编辑器在wp 4.1中消失了。问题恰好是“可访问性模式”(小部件编辑器中屏幕选项下的链接)已打开。

SO网友:Luke Chinworth

我的问题是wordpress没有包含tinymce脚本标记,因为user_can_richedit() 是否返回false(我没有调查原因。我的用户是管理员,之前正在进行不同的安装,所以可能有一些设置控制它?)。在任何情况下,都可以过滤user_can_richedit() 让wordpress包含tinymce脚本,然后定义tinymce。

add_filter(\'user_can_richedit\', \'__return_true\');

SO网友:dMe

我在调用wp\\u editor()时出错,说:

j is undefined
事实证明,我使用的选项名称(my\\u plugin\\u name\\u customer.subscription.updated)中有一个点,它破坏了编辑器。我用下划线替换了点,它解决了我的问题。

SO网友:DanielV

任何从PhpMyAdmin创建管理用户并遇到此问题的人-可能是因为您没有复制user\\u meta行进行富文本编辑。只需选中,然后取消选中;写入时禁用可视化编辑器;选项来测试这是否可以解决您的问题。

结束

相关推荐

如何在WordPress站点上使用这个jQuery脚本?

我一直在努力在wordpress网站上设置jquery列表文件。这是代码笔中的脚本和html:http://codepen.io/javve/pen/bBfgD我的问题是。示例中有html,其中链接了脚本。我是否可以将html复制到自定义页面,或者是否需要在页眉/页脚中设置它们,或者为它们赋形?第二个问题是关于jquery的:var monkeyList = new List(\'test-list\', { valueNames: [\'name\'], page: 5, plu