当从javascript初始化编辑器时,添加媒体按钮不起作用

时间:2018-12-08 作者:Jesse Norell

我正在尝试用javascript实例化wp\\U编辑器,除了“添加媒体”按钮不起作用外,它工作得很好。没有错误,但单击按钮不会执行任何操作。

我能想到的最简单的测试用例是将编辑器添加到注释表单中,我通过这段代码在一个包含完全库存内容的219个子主题中完成了这一操作(使用Hello World!post to test)。

add_action(\'wp_enqueue_scripts\', function() {
  if ( is_single() && comments_open() ) {
    wp_enqueue_editor();
  }
});

add_action(\'wp_footer\', function() {
?>

<script type="text/javascript">
  var editorSettings = {
    mediaButtons: true,
    tinymce: true,
    quicktags: true
  };

  jQuery(function($){
    $(document).ready(function() {
      wp.editor.initialize( \'comment\', editorSettings );
    });
  });

</script>

<?php
}, 100);
mediaButtons设置可显示/隐藏按钮本身,但不起作用。

我在4.9.8网站(自定义主题)上遇到了这个问题,无论是在评论字段还是我尝试过的其他文本区域。简化测试(如上)为5.0,启用和不启用Classic Editor插件都会出现相同的症状。

我曾尝试在php中通过wp\\u editor()打印编辑器,然后添加媒体按钮就可以了(例如,对于注释字段),但这不是测试之外的选项,因为我需要使用的文本区域是通过javascript动态添加的。

有没有人有什么想法可以尝试,或者有没有人有一个通过wp实例化编辑器的配置。编辑initialize()是否会导致“添加媒体”按钮正常工作?

1 个回复
最合适的回答,由SO网友:Jesse Norell 整理而成

解决方案是调用wp\\u enqueue\\u media()和wp\\u enqueue\\u editor()。

相关推荐

第一次提交时WP-EDITOR为空

我在一个简单的插件中使用wp编辑器,但我遇到了一个问题,第一次点击提交按钮时,数据库中的内容是空白的。<?php $editor_id = \'mycontent\'; wp_editor($content, $editor_id ); ?> 因此,我尝试使用以下内容提醒内容:if (j(\".wp-content-wrap\").hasClass(\"tmce-active\")){ alert(