tinyMCE.editors[] wordpress 4.8 未定义

Posted

技术标签:

【中文标题】tinyMCE.editors[] wordpress 4.8 未定义【英文标题】:tinyMCE.editors[] wordpress 4.8 undefined 【发布时间】:2018-03-21 23:56:59 【问题描述】:

我有一个带有元框的自定义帖子类型,可以将带有编辑的帖子添加到帖子中。每当我使用编辑器添加新帖子时,我都想保存该编辑器的内容。它以前工作得很好,但现在已经停止工作。我可以看到 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();             

        
   );

 

未捕获的类型错误:无法读取未定义的属性“getContent”

我也试过

  content = tinyMCE.get(whichmceditor).getContent();

这只是给了我

未捕获的类型错误:无法读取 null 的属性“getContent”

就像 tinyMCE 方法不再存在之类的。我不是很擅长这个,所以任何帮助或线索都会非常感激。

【问题讨论】:

【参考方案1】:

所以我想通了!只是编辑器必须处于可视模式才能获得编辑器。一个简单的条件解决了这个问题:

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 个小时,也许文档可以更清楚,也许是我,也许是也许是行。

【讨论】:

以上是关于tinyMCE.editors[] wordpress 4.8 未定义的主要内容,如果未能解决你的问题,请参考以下文章

为什么Tinymce第二次无法加载?

php 查询帖子类型wordpres

php Wordpres检索密码电子邮件

php 儿童主题的Wordpres功能

PHP Wordpres,查询最新帖子

HTML 在wordpres强制换行