php - 如何查找子字符串并删除周围的P标签

标签 php regex wordpress youtube

WordPress很棒,但是它很讨厌在任何地方添加段落标签。

问题在于,即使youtube链接也被P标签包围。在这种情况下,它们不会被嵌入,而是保持链接,而不是可播放的视频。我已经尝试了各种方法来防止wordpress添加P标签,但是似乎没有任何效果。

因此,我想实现一个过滤器,该过滤器可读取帖子的完整内容,查找youtube URL,并从中剥离周围的P标签。

例如我有这个:

add_filter('the_content','replace_content');
function replace_content($content)
{
     $content = str_replace('###replacement###', 'something_else',$content);
     return $content;
}

$ content包含完整内容。现在,我需要在$ content中找到被P标签包围的youtube URL。例如<p>https://youtu.be/abcdefg</p>
然后从中剥离P标签,然后放回去。

任何帮助将不胜感激。

谢谢。

莫里斯

最佳答案

简单而不是太好的正则表达式,但是可以解决问题

$content = preg_replace('#<p>(https?:\/\/youtu.+?)<\/p>#i', '$1',$content);

关于php - 如何查找子字符串并删除周围的P标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35817707/

相关文章:

PHP5 - 未处于交互模式时无法解析主机名

regex - 如何在 Perl 中安全地验证不受信任的正则表达式?

php - 在publish_post WordPress上获取Yoast插件信息

php - 不将数据插入 wp_users 表中的自定义字段

php - 为什么即使在本地环境中,laravel 也会重定向到 https?

php - 使用发布数据进行数组搜索获取数组中的下一个元素

php - PDO 比较两个不同格式的数组

regex - 用于匹配评论和 first_line_of_entry 的正则表达式

regex - 在 PHP 中使用正则表达式返回字符串的一部分

php - 如何删除wordpress静态主页中的页面名称?