Wordpress很棒,但它有一个非常讨厌的习惯,即在任何地方添加段落标记。
问题是即使是youtube链接也被P标签包围。在这种情况下,它们不会被嵌入,而是保持链接,而不是可播放的视频。我已经尝试了各种各样的东西来阻止wordpress添加P标签,但似乎没有任何效果。
所以我想实现一个过滤器,它会读取帖子的完整内容,找到youtube网址,并从中删除周围的P标记。
例如我有这个:
add_filter('the_content','replace_content');
function replace_content($content)
{
$content = str_replace('###replacement###', 'something_else',$content);
return $content;
}
$ content包含完整内容。现在我需要在$ content中找到由P标记包围的youtube网址。例如<p>https://youtu.be/abcdefg</p>
然后从中剥离P标签并将其放回原位。
非常感谢任何帮助。
感谢。
莫里斯
答案 0 :(得分:0)
简单且不太好的正则表达式,但它可以解决问题
$content = preg_replace('#<p>(https?:\/\/youtu.+?)<\/p>#i', '$1',$content);
答案 1 :(得分:0)
您可以轻松地完全删除所有功能,而不是随后摆弄正则表达式(无论如何它们都是known to cause a significant loss in mental health :)
在functions.php
:
remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );
查看有关官方Wordpress website的更多信息 还有plugin进行更精细的调整。