所以我显示了ACF WYSIWYG的一些内容
{{ post.get_field('content') }}
我得到类似的东西
<p class=p1">Text</p>
<p class=p1">Text<p1>
<p class=p1"><img src="someimagejpg" /><p>
<p class=p1">Text<p1>
除了用p标签包装的图像外,一切都很好。
我搜索了一些过滤器,它看起来像下面的主要解决方案。
内部functions.php
function filter_ptags_on_images($content) {
$content = preg_replace('/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content);
return preg_replace('/<p>\s*(<iframe .*>*.<\/iframe>)\s*<\/p>/iU', '\1', $content);
}
add_filter('acf_the_content, 'filter_ptags_on_images');
但这似乎不适用于木材
看起来Timber有自己的方式来注册过滤器,但它对我没有用,任何帮助都会很感激,谢谢!!
我在Timber上试过这个:
add_filter( 'timber_context', array( $this, 'add_to_context' ) );
function add_to_twig( $twig ) {
/* this is where you can add your own functions to twig */
$twig->addFilter('acf_the_content', new Twig_Filter_Function('filter_ptags_on_images'));
$twig->addFilter('the_content', new Twig_Filter_Function('filter_ptags_on_images'));
return $twig;
}
不工作
答案 0 :(得分:0)
您可以在striptags过滤器中找到您的解决方案
{{ some_html|striptags }}
另外一件好事是,您可以避免删除某些HTML标记,因为您可能需要它们:
{{ some_html|striptags('<br><p>') }}
这将删除除以外的所有HTML标记
<br/>, <br>, <p>, and </p>
有关此内容的更多信息,您可以找到 - &gt; Timber/striptags
编辑: 嘿马里奥,
我以为你想把它们全部剥掉。 现在,使用.unwrap()使用jQuery这是一个棘手的方法 您需要做的只是在您的内容中添加一些类作为选择器的img标记。