如何禁止TinyMce的粘贴插件将图片URL转换为嵌入式<img>?

时间:2019-04-19 作者:Florian Walther

TinyMCE的粘贴插件自动将粘贴的图像URL转换为嵌入图像。https://www.tiny.cloud/docs/plugins/paste/

我需要禁用此行为,因为我在前端的论坛中使用TinyMCE,我不想允许图像嵌入。

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

自动将粘贴的图像URL转换为嵌入图像

是,但仅适用于以结尾的URL.gif, .jpg, .jpeg.png.

这种转换是TinyMCE的“智能粘贴”功能之一;另一种是选择文本并粘贴绝对URL(以开头httphttps), 文本将自动转换为超链接(可单击链接)。

相关代码如下所示,您可以在wp-includes/js/tinymce/plugins/paste/plugin.js WordPress随附&mdash;在撰写本文时,WordPress仍在使用TinyMCE 4.9.2版。

var insertContent = function (editor, html) {
  if (Settings.isSmartPasteEnabled(editor) === false) {
    pasteHtml(editor, html);
  } else {
    smartInsertContent(editor, html);
  }
};
如果查看代码,则仅当isSmartPasteEnabled 函数返回true. 功能代码:

var isSmartPasteEnabled = function (editor) {
  return editor.getParam(\'smart_paste\', true);
};
因此,该函数基本上只是检查编辑器配置是否具有smart_paste 选项已启用(&M);确实如此by default enabled.

因此,如果要禁用智能粘贴功能,只需设置smart_paste 选项到false. 请参见下面的示例并尝试演示here:

tinymce.init({
  smart_paste: false,
  selector: \'textarea\',
  plugins: \'paste\'
 });

通过禁用智能粘贴功能wp_editor()smart_paste 到falsetinymce 阵列:

$content = \'<p>Paste an image URL:</p>\';
wp_editor( $content, \'editor-id\', array(
    \'tinymce\' => array(
        \'smart_paste\' => false,
    ),
) );

但记住这一点

设置smart_paste 选项到false 将禁用all 智能粘贴功能。如果只想禁用-img-标记转换,然后我认为您必须复制粘贴插件并在必要时进行编辑。