Wordpress TinyMCE 删除锚标记,如果它们在从文本切换到视觉时包裹块元素

Wordpress TinyMCE removes anchor tags if they wrap block elements when switching from text to visual

我能够使用以下代码在后端禁用此行为:

function override_mce_options($initArray)
{
    $opts = '*[*]';
    $initArray['valid_elements'] = $opts;
    $initArray['extended_valid_elements'] = $opts;
    $initArray['valid_children'] = '+a[*]';
    return $initArray;
}

add_filter('tiny_mce_before_init', 'override_mce_options');

如果我将其粘贴到编辑器中,它会起作用:

<a href="#" class="text-center text-info"><h5 class="title">Heading</h5></a>

并在不切换到可视模式的情况下按更新按钮。但是当粘贴并切换到可视模式时,编辑器会删除锚标记并单独留下 h5 。我知道有些 js 搞砸了,但我不知道是哪个文件造成的,也不知道如何防止这种行为。

我找到了一个完美的解决方案。我刚刚安装了 "Preserved HTML Editor Markup Plus" 插件,它解决了我在使用 TinyMCE 时遇到的所有问题,这些问题弄乱了我的 html 标记。