Я полагаю, что это привело меня к тому, что я идиот. Я вызывал этот же блок кода из другого виджета, когда пытался превратить оба виджета в текстовые области в codemirrors.
Я изменил имя 2 переменныхчтобы быть более конкретным в отношении виджета, например:
var editorSettings
var editor
, где изменилось на:
var cm_editorSettings
var cm_editor
Это позволило мне cm.editor.codemirror.getValue () и вернуть фактическое значение,Все еще не уверен, что это правильный способ реализации, поэтому, пожалуйста, исправьте меня, если я ошибаюсь, но в настоящее время рабочий код для обновления текстовой области и включения кнопки сохранения выглядит следующим образом:
<script type="text/javascript">
(function ($) {
$(document).ready( function(){
var cm_editorSettings = wp.codeEditor.defaultSettings ? _.clone( wp.codeEditor.defaultSettings ) : {};
cm_editorSettings.codemirror = _.extend(
{},
cm_editorSettings.codemirror,
{
lineNumbers: true,
mode: "text/html",
indentUnit: 2,
tabSize: 2,
autoRefresh:true,
}
);
var cm_editor = wp.codeEditor.initialize($('#<?php echo $textarea_id; ?>') , cm_editorSettings );
$(document).on('keyup', '.CodeMirror-code', function(){
$('#<?php echo $textarea_id; ?>').html(cm_editor.codemirror.getValue());
$('#<?php echo $textarea_id; ?>').trigger('change');
});
});
})(jQuery);