WordPress wp_editor 在 html 标签(例如链接、图像或表格)中用“替换”双引号

问题描述 投票:0回答:1

我在 WordPress 6.5.3(最新)中遇到 wp_editor (TinyMCE) 的问题,其中内容中的引号被错误替换。我使用自定义短代码(由 WPCode 处理)在帖子上显示可编辑内容区域,但是当内容加载到编辑器中时,双引号 (") 被替换为“实体,导致显示问题。

代码片段:

<?php
wp_editor($editable_content, 'post_content', [
    'textarea_name' => 'post_content',
    'textarea_rows' => 20,
]);
//error_log($editable_content);
?>

示例:

<img src="https://upload.wikimedia.org/wikipedia/commons/2/22/L%C3%B6we_1.jpg" alt="" />

显示(不存储)为:

<img src=“https://upload.wikimedia.org/wikipedia/commons/2/22/L%C3%B6we_1.jpg“ alt=““ />

使用可视化编辑器后:

<img src="“https://upload.wikimedia.org/wikipedia/commons/2/22/L%C3%B6we_1.jpg“" alt="““" />

我已经尝试过以下方法来解决该问题,但都不起作用:

  • 使用 remove_filter 函数删除 wptexturize 或 wp_filter_post_kses

  • 修改TinyMCE设置

问题仍然存在,编辑器中的引号仍然被错误地替换。在调用 wp_editor 之前,我可能没有正确使用remove_filter函数。

我还确保 $editable_content 变量在将其传递给 wp_editor 之前包含正确的内容。

我已经面临这个问题一天多了,非常感谢您的帮助。

如果您需要任何其他信息,请告诉我。

wordpress image tinymce double-quotes wp-editor
1个回答
0
投票

我也有同样的问题

wp_editor()
。问题确实出在
wptexturize
,而且
remove_filter
也不起作用。为了解决这个问题,我们可以完全禁用它,如下所示:

add_filter('run_wptexturize', '__return_false');

但是,如果我们想保留

wptexturize
,我们可以仅对
textarea
中的内容禁用它:

function my_no_texturize_tags($tags) {
    $tags[] = 'textarea';
    return $tags;
}
add_filter('no_texturize_tags', 'my_no_texturize_tags');

不再干扰发送到

wp_editor()
的内容。


郑重声明,虽然

wptexturize
无法直接在
wp_editor()
设置中禁用,但我们可以禁用
wpautop
(如果需要),如下所示:

wp_editor($editable_content, 'post_content', [
    'textarea_name' => 'post_content',
    'textarea_rows' => 20,
    'wpautop' => false,
]);
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.