用新行转义ACF字段 [英] Escape ACF fields with new lines
本文介绍了用新行转义ACF字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在ACF中使用Text Area字段。
我已将";新行选项设置为";自动添加段落(&q;)。
以下是我的模板文件中的PHP外观:
<?php
$notice = '<p>Some text.</p>';
$text = get_field( 'text', 'option' );
if ( $text ) {
echo str_replace( '<p>', '<p class="footer__paragraph">', $text );
}
else {
echo $notice;
}
?>
您将看到我正在使用str_replace
向<p>
标记添加一个自定义的CSS类。
我通常会转义输出,如<?php echo esc_html( $text ); ?>
。这显然不起作用,因为autop为每行添加了一个<p>
标记。
是否可以在保留自定义类的同时转义输出?
推荐答案
是的,将您感兴趣的标记和属性列入白名单是可行的。WordPress有一个特殊的功能:
它的工作原理是这样的!您可以向它传递一个您想要接受的标记数组,同时转义所有其他标记和属性。例如,如果您只需要保留p
标记和您的定制类并转义其他所有内容,那么您可以这样做:
$text = get_field( 'text', 'option' );
$whitelist_tags = array(
'p' => array(
'class' => array('footer__paragraph')
)
);
echo wp_kses( $text, $whitelist_tags );
这将保留您的p
标记和您的自定义类,并转义所有其他标记和属性。
如果这就是您要找的,请让我知道!
这篇关于用新行转义ACF字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文