0

我想改变这句话:

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

对此:

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

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

步骤 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

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

谢谢!

4

3 回答 3

1

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

$ 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/\3' --regex 

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

还记得:

$ wp cache flush

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

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

于 2017-02-04T07:42:47.480 回答
0

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

$ 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
于 2016-04-03T10:04:58.830 回答
0

还有一个正则表达式,这个修复了 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/\1\2' --regex --regex-flags='s'

于 2020-12-28T00:47:37.770 回答