用新行转义ACF字段字段、用新行、ACF

由网友(持刀稳情场)分享简介:我在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_ksesDocs

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

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

$whitelist_tags = array(

  'p' => array(

        'class' => array('footer__paragraph')

    )

);

echo wp_kses( $text, $whitelist_tags );

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

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

阅读全文

相关推荐

最新文章