Php 使用get_the_content()时,在WordPress上发布内容时隐藏Youtube URL

Php 使用get_the_content()时,在WordPress上发布内容时隐藏Youtube URL,php,wordpress,post,preg-replace,str-replace,Php,Wordpress,Post,Preg Replace,Str Replace,在我的网站中,我使用get_the_content()来显示我帖子的内容。但是,我发布的视频URL(这里是youtube)也会随我的内容一起显示 我尝试使用preg_replace()来避免包含youtube URL的字符串。但我想通过使用字符串的开头来动态地执行它 “”将其替换为空字符串 我正在找这样的东西。 $description=preg\u replace('https://www.youtube.com/watch?v=f0cReHKUiJM“,”,获取内容()) 请分享您对如何实现

在我的网站中,我使用get_the_content()来显示我帖子的内容。但是,我发布的视频URL(这里是youtube)也会随我的内容一起显示

我尝试使用preg_replace()来避免包含youtube URL的字符串。但我想通过使用字符串的开头来动态地执行它 “”将其替换为空字符串

我正在找这样的东西。
$description=preg\u replace('https://www.youtube.com/watch?v=f0cReHKUiJM“,”,获取内容())

请分享您对如何实现这一目标的想法


提前感谢。

如果您确实想从
获取内容()
字符串中删除所有youtube URL,(假设href值是双引号),您可以使用以下方法:

~https?:/{2}(?:w{3}\.)?youtube\.com[^"]+~

这可以通过以下方式实现:

$description=preg_replace('~https?:/{2}(?:w{3}\.)?youtube\.com[^"]+~','',get_the_content());

但这将留下链接的“外壳”(


您可以更进一步,删除标记并将文本保留在:

~<a.*?href="https?://(?:www\.)?youtube\.com[^>]*>(.*?)</a>~
~~

实施:

$description=preg_replace('~<a.*?https?://(?:www\.)?youtube\.com[^>]*>(.*?)</a>~','\1',get_the_content());
$description=preg\u replace('~


事实上,您没有提供任何来自
get_The_content()
的完整字符串示例,也没有解释url或
a
标记结构(额外属性或引用方式)是否存在变化。这些因素可能会影响图案设计。我的答案主要基于假设。可能会对你有所帮助。如果没有,最好是你更新你的问题。

检查。我发现实现这一点的一种方法是将字符硬编码为11,并将其从字符串中删除。任何建议都值得赞赏。此字符串不会让youtube.com有时候它是一个嵌入的URL。我理解你想要匹配的“针”。你能给我一个现实的“草垛”吗?(或两个)如果我理解了整个故事,我将能够帮助你。请告诉我草垛可能会有多大的变化,以及我的答案中有什么不符合预期。请提供我要求的信息,以便我能够解决此页面。