我有一个带有元数据的自定义帖子类型,可以添加带有编辑器的帖子到帖子中。每当我用编辑器添加新帖子时,我想保存该编辑器的内容。它以前运作良好,但现在已停止工作。我可以看到wordpress update 4.8对编辑器api有一些变化,但我看不出这些变化会如何影响我的代码。
制作编辑:
<?php
public function wldk_elearn_add_elements_to_metabox($subpage_id){
$parent_id = $subpage_id;
echo '<div id="element_data_input_text">';
<?php
$settings = array( 'textarea_name' => 'mycustomeditor_'.$parent_id );
$editor_id = 'mycustomeditor_'.$parent_id;
wp_editor( "", $editor_id, $settings );
echo '</div>';
}
的Javascript
function handleAddElementAction() {
$('.wldk-elearn-add-element').click(function (event) {
event.preventDefault();
var $wrapper = $(this).parents('#wldk-elearn-new-element');
var $subpage = $wrapper.find('input[name=subpage_id]');
var $type = $wrapper.find('input:radio[name=element_type]:checked');
var subpage = $subpage.val();
var content = '';
var whichmceditor = 'mycustomeditor_'+subpage;
console.log(whichmceditor);
if($type.val()=='tx'){
content = tinyMCE.editors[whichmceditor].getContent();
}
});
}
未捕获的TypeError:无法读取未定义的属性“getContent”
我也试过
content = tinyMCE.get(whichmceditor).getContent();
哪个只是给了我
未捕获的TypeError:无法读取null的属性'getContent'
它就像tinyMCE方法不再存在或其他东西。我不是很擅长这一点,所以任何帮助或线索都会被大大贬低。
答案 0 :(得分:0)
所以我想通了!只是编辑器必须处于可视模式才能获得编辑器。一个简单的条件修复了这个问题:
function handleAddElementAction() {
$('.wldk-elearn-add-element').click(function (event) {
event.preventDefault();
var $wrapper = $(this).parents('#wldk-elearn-new-element');
var $subpage = $wrapper.find('input[name=subpage_id]');
var $type = $wrapper.find('input:radio[name=element_type]:checked');
var subpage = $subpage.val();
var content = '';
var whichmceditor = 'mycustomeditor_'+subpage;
console.log(whichmceditor);
if($type.val()=='tx'){
if($wrapper.find('#'+whichmceditor).is(':visible')){
content = $wrapper.find('#'+whichmceditor).val();
}else{
content = tinyMCE.editors[whichmceditor].getContent();
}
}
});
}
这是我生命中浪费的3个小时,也许文档可能更清晰,也许是我,也许是可能的。