php 动态生成的WordPress所见即所得编辑器(wp_editor)显示不正确

mtb9vblg  于 2023-03-11  发布在  PHP
关注(0)|答案(6)|浏览(194)

我有2个HTML所见即所得的编辑器在WordPress管理页面。都使用WP_EDITOR()函数。第一个是硬编码到页面:

<form name="form1" id="form1" method="post" action="" style="display:block;">
  <p>
    <!-- editor here -->
    <?php
       wp_editor( 'CONTENT WILL APPEAR HERE!', 'addsometxt', array('textarea_name'=>'create_txt','textarea_rows'=>10,'wpautop'=>false));
    ?>
  </p>
  <p>
   <input name="save" type="submit" class="button-primary" id="save" style="margin:5px;" value="Save Input" /></p>
</form>

第二个是使用 AJAX 调用(wp_ajax_ and $.post)由PHP函数动态生成的,我已经测试了ajax调用,知道它可以工作;所以,为了简单起见,这里是php函数:

<?php
function display_editor2() {
// grab data from database (data_from_db) and display in editor
  wp_editor( $row->data_from_db, 'editsometxt', array('textarea_name'=>'edit_txt','textarea_rows'=>10,'wpautop'=>false));

} 
?>

问题是,即使第二个编辑器正在显示;它丢失了所有的工具栏按钮。见下图的说明。有人知道谁来解决这个问题吗?

bihw5rsg

bihw5rsg1#

我也有同样的问题。
当我在footer.php中添加代码<?php wp_footer(); ?>时,它工作了。

tjvv9vkg

tjvv9vkg2#

我有完全相同的问题,并解决了它这样(WP 4.7):
首先在模板中创建一个隐藏的编辑器,以便WP加载TinyMCE的所有必要文件(ID无关紧要):

<div style="display:none"><?php wp_editor('', 'hidden_editor'); ?></div>

然后,在将新编辑器附加到DOM之后,使用以下函数:

quicktags({id :'your_new_editor_id'});
tinymce.execCommand('mceAddEditor', true, 'your_new_editor_id');

使用tinymce.init对我来说不起作用,因为新的编辑器ID无法识别。这两行重新示例化quicktags并添加新的编辑器。

o4hqfura

o4hqfura3#

Documentation

wp_editor( string $content, string $editor_id, array $settings = array() )

问题是您正在为两个编辑器使用相同的$editor_ideditsometxt,尝试更改第二个编辑器的$editor_id

yqkkidmi

yqkkidmi4#

可能需要在 AJAX 调用中添加media_buttonstinymce参数。
大概是这样的

<?php
function display_editor2() {
    // grab data from database (data_from_db) and display in editor
    wp_editor( $row->data_from_db, 'editsometxt', array('textarea_name'=>'edit_txt','media_buttons'=>true,'tinymce'=>true,'textarea_rows'=>10,'wpautop'=>false));

    } 
?>

我建议你检查wp_editor()功能参考页面在WordPress的法典。

332nm8kg

332nm8kg5#

嘿,我也有同样的问题!
我刚刚停用了所有我安装的插件并刷新了页面,然后我还尝试在可视区域编辑帖子/页面。检查一次,它会为你工作。:)

egdjgwm8

egdjgwm86#

我也有同样的问题,使用这个:

<?php wp_editor(get_the_content()); ?>

通过传递一个ID(wp_editor的第二个参数),我得到了按钮,如下所示:

<?php wp_editor(get_the_content(), "with_a_ID_its_buttons_are_showing"); ?>

相关问题