php - 检查 str_replace 是否应该首先执行以避免重复的字符串
问题描述
每次我们保存 ACF 表单时,此代码段都会添加额外的注册商标符号周围的标签。我们的目标是让它只做一次,所以我们需要先检查标签但不知道如何,因为我们对 PHP 还很陌生。
function superscript_R( $value, $post_id, $field ) {
if( is_string($value) ) {
$value = str_replace(['®', '®'],'<sup>®</sup>', $value );
}
return $value;
}
// Apply to all fields
add_filter('acf/update_value', 'superscript_R', 10, 3);
解决方案
您可以检查$value
它是否包含符号。因此,只有当它没有<sup>®</sup>
if( is_string($value) && strpos($value, '<sup>®</sup>') === false ) {
$value = str_replace(['®', '®'],'<sup>®</sup>', $value );
}
推荐阅读
- kendo-ui - Kendo Schedular Uncaught TypeError:无法读取未定义的属性“getTimezoneOffset”
- haskell-stack - QuickCheck 属性的 DRY 类型注释
- javascript - 如何使用 Angular 5 验证电子邮件
- python - 无法理解 [Errno 111] 连接被拒绝
- deep-learning - 如果在输出层使用 sigmoid,pytorch 中分类问题的损失函数应该是多少
- sql - 如何使用 SQL 语句在 HANA 中插入连续日期?
- pycharm - 如何设置 python 控制台和变量资源管理器的布局
- javascript - 加载另一个后加载 JS 脚本
- android - 如何根据左侧宽度限制textView的宽度
- javascript - turf.js:缓冲区执行但 geojson 未添加到传单地图