我正在尝试为动态wp编辑器设置自动保存,以防用户忘记点击保存。 (目前设置了AJAX按钮进行保存。)用户可以有0到20个单独的条目。
似乎应该在wp_editor设置数组中添加一些内容,以便在初始化tinymce时添加它。设置数组是workinG。我可以添加或删除媒体按钮。但是,我似乎无法在设置中插入正确的代码,以便在更改活动编辑器时触发某些内容。
这就是我所拥有的。
$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时却没有。
我已经考虑过设置隐藏字段进行比较,但这似乎是一个不好的方法。应该有一些内置功能,而不是从头开始创建它。
感谢您的帮助和建议!
答案 0 :(得分:0)
因此看起来您不想通过设置数组执行此操作。而是添加一个过滤器来插入此代码pre_init。以下代码&#34;点击&#34;一个保存按钮,并在wordpress中从tinymce打印到控制台上。
需要缩小setup js字符串,否则它将在控制台中引发错误。
将这样的内容添加到functions.php文件中。注意:&#39;需要在某些代码中进行转义,因此它不会使函数文件出错。
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都很新。