WordPress站点特殊格式粘贴文本转纯文本解决方案求助
WordPress特殊格式文本转纯文本解决办法
方法一:编辑器自动处理粘贴事件
在主题的functions.php文件中添加以下代码,实现粘贴时自动转换特殊格式字符:
function wp_convert_special_chars_on_paste() { if (is_admin()) { ?> <script> document.addEventListener('DOMContentLoaded', () => { const editor = document.querySelector('.wp-editor-area'); if (!editor) return; editor.addEventListener('paste', (e) => { e.preventDefault(); let rawText = e.clipboardData.getData('text/plain'); // 匹配数学粗体类特殊Unicode字符,转换为普通字符 rawText = rawText.replace(/[\uD835\uDC00-\uD835\uDCFF]/g, char => { return String.fromCharCode(char.charCodeAt(1) - 0xDC00 + 0x41); }); // 插入处理后的纯文本 document.execCommand('insertText', false, rawText); }); }); </script> <?php } } add_action('admin_head', 'wp_convert_special_chars_on_paste');
这段代码会监听后台编辑器的粘贴动作,将剪贴板中类似𝐍𝐨𝐯𝐞𝐦𝐛𝐞𝐫的数学粗体Unicode字符,转换为对应的普通ASCII字母后插入编辑器。
方法二:批量处理已发布内容
如果站点已存在大量特殊格式内容,可通过数据库SQL语句批量替换(操作前务必备份数据库):
在phpMyAdmin中执行以下SQL语句(注意替换表前缀wp_为你的实际前缀):
UPDATE wp_posts SET post_content = REGEXP_REPLACE(post_content, '[\x{1D400}-\x{1D4FF}]', CHAR(ORD(SUBSTRING(post_content, POSITION('[\x{1D400}-\x{1D4FF}]' IN post_content), 1)) - 0x1D400 + 0x41) );
该语句会批量替换文章内容中的数学粗体特殊字符为普通字母。
方法三:手动处理小批量内容
针对少量内容,可通过系统记事本中转:
- 复制特殊格式文本,粘贴到Windows记事本或Mac的TextEdit(切换到纯文本模式)
- 再从记事本中复制文本,粘贴到WordPress编辑器,特殊格式会被自动清除
内容的提问来源于stack exchange,提问作者Enrico
相关产品推荐
相关产品推荐

