如何在WordPress PHP函数中多次使用str_replace?
解决多个占位符替换仅生效一次的问题
你的代码核心问题是第一个return语句直接终止了函数执行,导致后续的str_replace完全没机会运行,所以只有{apktitle}被替换,{apkversion}的替换逻辑根本没触发。
修正方法很简单,不要中途返回,完成所有替换操作后再统一返回结果:
方法一:分步替换(逻辑清晰)
function custom_the_content( $content ) { // 先替换标题占位符,结果存回变量 $content = str_replace('{apktitle}', get_the_title(), $content); // 再替换版本号占位符,更新变量 $content = str_replace('{apkversion}', get_datos_info('version'), $content); // 所有替换完成后返回最终内容 return $content; } add_filter('the_content', 'custom_the_content');
方法二:批量替换(代码更简洁)
如果后续要添加更多占位符,用数组批量替换更高效:
function custom_the_content( $content ) { // 定义占位符与替换值的映射数组 $replace_map = array( '{apktitle}' => get_the_title(), '{apkversion}' => get_datos_info('version') ); // 一次性替换所有占位符 return str_replace(array_keys($replace_map), array_values($replace_map), $content); } add_filter('the_content', 'custom_the_content');
内容的提问来源于stack exchange,提问作者Muhammad Imran
相关产品推荐
相关产品推荐

