wp编辑器设置数组自动保存功能onchange

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相当陌生。