由网友(持刀稳情场)分享简介:我在ACF中使用Text Area字段。我已将";新行选项设置为";自动添加段落(&q;)。以下是我的模板文件中的PHP外观:<?php$notice = 'Some text.';$text = get_field( 'text', 'option' );if ( $text )...
我在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有一个特殊的功能:
wp_kses
Docs
它的工作原理是这样的!您可以向它传递一个您想要接受的标记数组,同时转义所有其他标记和属性。例如,如果您只需要保留p
标记和您的定制类并转义其他所有内容,那么您可以这样做:
$text = get_field( 'text', 'option' );
$whitelist_tags = array(
'p' => array(
'class' => array('footer__paragraph')
)
);
echo wp_kses( $text, $whitelist_tags );
这将保留您的p
标记和您的自定义类,并转义所有其他标记和属性。
如果这就是您要找的,请让我知道!
相关推荐
最新文章