You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress中替换单词字符并保留原有大小写?

解决方案:单个函数实现保留大小写的字符替换

你完全可以用单个函数搞定这个需求,不用分开写大小写对应的版本!问题出在str_replace(哪怕用不区分大小写的str_ireplace)没办法根据原字符串的大小写动态调整替换结果,而用正则表达式的preg_replace_callback就能完美解决这个问题——它可以捕获每个匹配到的原字符串,再根据其大小写格式生成对应的替换文本。

完整实现代码

// 核心替换函数:处理所有大小写情况
function bv_replace_tunbridge($content) {
    // 不区分大小写匹配"tunbridge",用回调函数动态生成替换内容
    return preg_replace_callback('/tunbridge/i', function($matches) {
        $original_match = $matches[0];
        // 替换的核心部分(去掉首字母的部分)
        $replacement_suffix = 'ûnbridge';
        
        // 根据原匹配字符串的大小写格式返回对应结果
        if (strtoupper($original_match) === $original_match) {
            // 全大写情况:替换成全大写的版本
            return 'T' . strtoupper($replacement_suffix);
        } elseif (ucfirst($original_match) === $original_match) {
            // 首字母大写情况:替换成首字母大写的版本
            return 'T' . ucfirst($replacement_suffix);
        } else {
            // 全小写情况:替换成全小写的版本
            return 't' . $replacement_suffix;
        }
    }, $content);
}

// 将替换应用到文章内容
add_filter('the_content', 'bv_replace_tunbridge');
// 将替换应用到文章标题
add_filter('the_title', 'bv_replace_tunbridge');
// 将替换应用到文章元数据(post_meta)
add_filter('get_post_metadata', function($value, $object_id, $meta_key, $single) {
    // 如果是单个字符串类型的元数据,直接替换
    if ($single && is_string($value)) {
        return bv_replace_tunbridge($value);
    }
    // 如果是数组类型的元数据,遍历每个元素替换
    if (is_array($value)) {
        return array_map('bv_replace_tunbridge', $value);
    }
    // 非字符串/数组类型直接返回原内容
    return $value;
}, 10, 4);

代码说明

  1. 核心替换逻辑:

    • 用/tunbridge/i正则模式不区分大小写匹配目标单词
    • 回调函数会拿到每个匹配的原字符串(比如tunbridge、Tunbridge、TUNBRIDGE)
    • 根据原字符串的大小写状态,生成对应的带音标版本,完美保留原有格式
  2. 多场景应用:

    • 通过the_content和the_title过滤器,替换文章内容和标题里的目标单词
    • 通过get_post_metadata过滤器,处理文章元数据的替换:无论是单个字符串元数据还是数组元数据,都会被正确处理

测试效果

  • 原字符串tunbridge → 替换为tûnbridge
  • 原字符串Tunbridge → 替换为Tûnbridge
  • 原字符串TUNBRIDGE → 替换为TÛNBRIDGE
  • 混合大小写(比如TunBridge):虽然这种情况很少见,但代码会按首字母大写处理,返回Tûnbridge(如果需要处理这种极端情况,可以进一步调整回调逻辑)

内容的提问来源于stack exchange,提问作者Lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:41:27