我正在查询高级自定义字段wysiwyg字段。问题是,无论我怎么做,wordpress都会在输出中用p标记包装偶尔出现的IMG和IFrame。停用wpautop worksremove_filter (\'acf_the_content\', \'wpautop\');
但如果我尝试使用以下代码段仅排除IMG和IFrame,则会失败:
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(\'the_content\', \'filter_ptags_on_images\');
有人对如何实现这一目标有什么建议吗?向拉尔夫致意
最合适的回答,由SO网友:rkoller 整理而成
好的,如果你想去掉高级自定义字段的img和iframe的p标签,你必须交换the_content
具有acf_the_content
. 代码看起来是这样的:
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\');