用新行转义ACF字段 [英] Escape ACF fields with new lines

查看:0
本文介绍了用新行转义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有一个特殊的功能:

wp_ksesDocs

它的工作原理是这样的!您可以向它传递一个您想要接受的标记数组,同时转义所有其他标记和属性。例如,如果您只需要保留p标记和您的定制类并转义其他所有内容,那么您可以这样做:

$text = get_field( 'text', 'option' );

$whitelist_tags = array(

  'p' => array(

        'class' => array('footer__paragraph')

    )

);

echo wp_kses( $text, $whitelist_tags );

这将保留您的p标记和您的自定义类,并转义所有其他标记和属性。

如果这就是您要找的,请让我知道!

这篇关于用新行转义ACF字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆