URL 的 Wordpress WP-CLI 搜索替换语法

Wordpress WP-CLI search-replace syntax for URLs

我要改这句话:

<iframe width="850" height="478" src="https://www.youtube.com/embed/4zH9Zca1vRM" frameborder="0" allowfullscreen></iframe>

为此:

https://www.youtu.be/4zH9Zca1vRM

我可以为数据库中 YouTube 视频的每个 iframe 执行此操作。 do it 正确的句子是什么?我猜是这样的:

步骤 1。替换第一部分:

wp search-replace '<iframe width="*" height="*" src="https://www.youtube.com/embed/' 'https://www.youtu.be/'  --regex

步骤 2。替换最后一部分:

wp search-replace '" frameborder="0" allowfullscreen></iframe>' ''  --regex

对吗?我不确定引号和通配符。

谢谢!

你不需要正则表达式,你可以用一个勾号来引用它。您可以 运行 这个来测试和显示将发生的替换。删除 --dry-运行 标志以进行实际替换。

$ wp search-replace '<iframe width="850" height="478" src="https://www.youtube.com/embed/4zH9Zca1vRM" frameborder="0" allowfullscreen></iframe>' 'https://www.youtu.be/4zH9Zca1vRM' --dry-run

要使用正则表达式更新,请务必转义第一个参数的所有正斜杠:

$ wp search-replace '<iframe width="([0-9]+)" height="([0-9]+)" src="https:\/\/www.youtube.com\/embed\/([a-zA-Z0-9]+)" frameborder="0" allowfullscreen><\/iframe>' 'https://www.youtu.be/' --regex 

忽略前两个匹配项,因为它们不重要,在第二个(替换)参数中使用第三个匹配项。

同时记得:

$ wp cache flush

最好先执行 --dry-run 以查看是否有您可能不打算修改的受影响的表。

http://wp-cli.org/commands/search-replace/

还有一个正则表达式, 这个修复了 youtube 链接或 iframe http 或 https

并用将在 wordpress 中显示为嵌入的简单字符串替换它:

https://youtu.be/gVoUPnXqvNE


$ wp search-replace '<(?:a|iframe)\s[^>]*(?:href|src)="https?:\/\/www\.youtube\.com\/(?:embed\/|watch\?v=)([a-zA-Z0-9-]+)(?:(?:\?&)[^"#\s]*)?(#t=[0-9]+)?"[^>]*>.*?<\/(?:a|iframe)>' 'https://youtu.be/' --regex --regex-flags='s'