数据库搜索替换为什么会失败
Elementor 将每个页面以 JSON 格式存储在 _elementor_data 字段中,该 JSON 经过编码:
| 编辑器中看到的内容 | 实际存储方式 | 在数据库中按原样搜索 |
|---|---|---|
联系 | \u8054\u7cfb | 找不到 |
"特价" | \"\u7279\u4ef7\" | 找不到 |
https://mysite.com/contact | https:\/\/mysite.com\/contact | 找不到 |
找不到就不会更改,也不会警告:报告显示零个匹配,而网站的每个页面上都有这个文本。此外,文本编辑器小部件包含 HTML,因此对"价格"进行盲目替换也会更改 价格-表格 这个类,导致样式丢失。
对于单个导出的页面,可以在浏览器中使用 Elementor JSON 查找替换工具。对于整个网站,使用以下三个选项之一。
方案 1:手动逐页编辑
页面较少时,这是最快的方法。在编辑器中,Finder(Ctrl + E,Mac 上为 Cmd + E)可以按名称打开任意页面而无需返回控制台,每次更改都会留下修订记录。
风险是会遗漏某些页面,因为文本不仅存在于页面中。还要检查页眉、页脚、弹窗、单篇和归档模板、全局小部件和循环项。
方案 2:将文本集中存放在一处
电话号码、营业时间或地址等会变化的信息,最好存放在一个地方:主题构建器(Elementor Pro)的页眉或页脚,或通过模板小部件插入的已保存模板。修改一次,所有页面同步更新。
此方案无法解决已经分散重复的文本。那种情况请用方案 1 或 3。
方案 3:专为 Elementor 设计的查找替换
Smart Search & Replace for Elementor 免费,像 Elementor 一样读取页面:
- 进入 工具 › Search & Replace for Elementor。
- 在 Find 中,按编辑器中显示的样子输入文本,包括特殊字符和引号。在 Replace with 中输入新文本。
- 在 Search in 中,选择 Text and links 或 Links only。如需要,勾选 Match case 或 Whole words only。
- 点击 Search。每个匹配项显示其路径(页面 › 部分 › 小部件 › 字段)及修改前后的对比。
- 勾选要修改的项,点击 Replace selected。
只修改可见文本:不会碰类名、HTML 属性或对齐等设置。通过 Elementor 保存,因此每个修改过的页面都有修订记录,Undo last operation 可撤销整个操作(之后有人编辑过的页面除外)。跳过编辑器中已打开的页面,完成后清除 Elementor CSS 和常用缓存插件的缓存。
搜索范围:页面、文章、产品、模板、页眉、页脚、弹窗和全局小部件,无论是否已发布。
需要避免的错误
- 不加"完整单词"的短词搜索。 搜索"产品"而不勾选 Whole words only 也会匹配"新产品"和"产品线"。
- 电话号码有两种格式。 显示的号码(
010-1234-5678)和点击拨号链接(tel:+8601012345678)是不同的字符串。需要分两次搜索。 - 替换字段为空。 这会删除找到的文本。插件会在执行前发出警告。
- 期望修改 Elementor 以外的内容。 WordPress 菜单、SEO 标题、块编辑器文章和动态标签文本不会改变:动态内容来自其他地方,会被跳过。
- 没有备份就操作。 有修订记录也好,大批量修改前务必做完整备份。