wp编辑器设置数组自动保存功能onchange
问题描述:
我试图为动态wp编辑器设置自动保存以防万一我的用户忘记点击保存。 (目前使用AJAX按钮设置保存。)用户可以有0到20个单独的条目。wp编辑器设置数组自动保存功能onchange
似乎应该将某些东西添加到wp_editor设置数组中,以便在初始化tinymce时添加它。 The settings数组正在工作。我可以添加或删除媒体按钮。但是,我似乎无法将正确的代码插入到设置中,以便在活动编辑器更改时启动它。
这是我的。
$editorSettings =
array ('media_buttons' => false,
'resize' => false,
'wp_autoresize_on' => true,
'setup' => "function(ed) {
ed.onChange.add(function(ed, l) {
console.debug('Editor contents was modified. Contents: ' + l.content);
});
});"
);
使用此代码构建编辑器。
<?php wp_editor(stripslashes($j->journal_entry), 'journal-edit-'.$i , $editorSettings ); ?>
理想我只想运行AJAX救我已经写代码。但是,更改事件似乎没有被解雇。
这是做到这一点的最好方法,还是应该在wp_editor函数之外创建一些东西。我可以找到很多代码来手动启动tinymce并对其进行修改,但在试图通过Wordpress时无法修改。
我想过设置隐藏的字段来比较,但这似乎是一个糟糕的路要走。应该有一些构建功能来利用,而不是从头开始创建它。
谢谢你的帮助和建议!
答
所以它看起来像你不想通过设置数组来做到这一点。相反,添加一个过滤器来插入此代码pre_init。下面的代码“点击”一个保存按钮并打印到wordpress中tinymce的变化事件的控制台上。
设置js字符串需要缩小,否则会在控制台中抛出错误。
把这样的东西添加到你的functions.php文件中。注意:'需要在这些代码中被转义,所以它没有错误的功能文件。
function mce_autosave_mod($init) {
$init['setup'] = 'function(a){a.on("change",function(b){jQuery(this).parent().find(\'#btnEditCharJournal\').trigger("click"),console.log("the event object ",b),console.log("the editor object ",a),console.log("the content ",a.getContent())})}';
return $init;
}
add_filter('tiny_mce_before_init', 'mce_autosave_mod');
各种其他的代码可以在这里引发。同时添加逻辑来限制您的网站上的特定编辑器是一个好主意。你不希望这个运行的编辑器的所有实例。
如果您有任何建议来清理这个或更好的方法,请让我知道。我对过滤器和wp_editor/tinymce相当陌生。