如何在这个 ACF 片段中使用 return 而不是回显?

How to use return instead of echo with this ACF snippet?

我有一个片段可以为文本区域字段创建项目符号点。

然而我被告知我应该使用:

return $value

而不是

echo

对于 acf/format_value 挂钩中的任何内容。我怎样才能把它变成 return $value 格式?

<?php

function my_acf_format_value( $value, $post_id, $field ) {
    $my_acf_format_value = explode("\n", $value);
    echo '<ol>';
    echo '<li>' . implode( '</li><li>', $my_acf_format_value) . '</li>';
    echo '</ol>';
}

add_filter('acf/format_value/name=pt_materials', 'my_acf_format_value', 10, 3);

您可以使用字符串连接 (.=) 将字符串连接在一起,而不是使用多个 echo 语句。然后在函数的最后,可以根据需要使用return语句将值传回WordPress。

<?php

function my_acf_format_value( $value, $post_id, $field ) {
    $my_acf_format_value = explode("\n", $value);

    // Create string variable to append our data to
    $return_string = '';

    // Append values to our string variable.
    $return_string .= '<ol>';
    $return_string .= '<li>' . implode( '</li><li>', $my_acf_format_value) . '</li>';
    $return_string .= '</ol>';


    // Return the value
    return $return_string;

}

add_filter('acf/format_value/name=pt_materials', 'my_acf_format_value', 10, 3);
wordpress

我已经添加了额外的注释来解释所涉及的步骤,但是由于这是一个非常简单的函数,所以只需一行代码就可以完成:

return '<ol><li>' . implode( '</li><li>', $my_acf_format_value) . '</li></ol>';