我想把这句话改一下:
<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
是对的吗?我对引号和通配符不太确定。
谢谢!
发布于 2017-02-04 15:42:47
要使用正则表达式进行更新,请确保转义第一个参数的所有正斜杠:
$ 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
最好先做一次--预演,看看是否有您不打算修改的受影响的表。
发布于 2016-04-03 18:04:59
你不需要正则表达式,你可以用一个滴答符引用它。您可以运行此命令来测试并显示将要发生的替换。删除--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
发布于 2020-12-28 08:47:38
还有另一个正则表达式,它修复了youtube链接或iframe http或https。
并将其替换为一个简单的字符串,该字符串将在wordpress中显示为embed:
$ 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'
https://stackoverflow.com/questions/36370718
复制相似问题