首页 > 解决方案 > 检查 str_replace 是否应该首先执行以避免重复的字符串

问题描述

每次我们保存 ACF 表单时,此代码段都会添加额外的注册商标符号周围的标签。我们的目标是让它只做一次,所以我们需要先检查标签但不知道如何,因为我们对 PHP 还很陌生。

function superscript_R( $value, $post_id, $field ) {
if( is_string($value) ) {
    $value = str_replace(['®', '&reg;'],'<sup>®</sup>',  $value );
}
return $value;
}

// Apply to all fields
add_filter('acf/update_value', 'superscript_R', 10, 3);

标签: phpwordpressadvanced-custom-fields

解决方案


您可以检查$value它是否包含符号。因此,只有当它没有<sup>®</sup>

if( is_string($value) && strpos($value, '<sup>®</sup>') === false ) {
    $value = str_replace(['®', '&reg;'],'<sup>®</sup>',  $value );
}

推荐阅读