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

WordPress中Watupro测验HTML报告动态替换分类分数变量

替换Watupro测验分类分数为自定义等级的解决方案

要实现把Watupro的%%-CATEGORY-POINTS-X%%短码输出的分数替换成自定义等级(比如1→A、2→B等),核心思路是拦截原短码的数值输出,通过条件判断替换为对应标签。下面提供两种可行的实现方法:

方法一:通过钩子拦截原短码输出

这种方法不需要修改你原本的短码调用,直接通过WordPress的do_shortcode_tag钩子捕获Watupro短码的输出并替换。

  1. 将以下代码添加到你的主题functions.php文件,或者自定义插件中:
add_filter('do_shortcode_tag', 'watupro_replace_category_points_with_grade', 10, 3);

function watupro_replace_category_points_with_grade($output, $tag, $attr) {
    // 匹配Watupro的CATEGORY-POINTS短码格式
    if (strpos($tag, 'CATEGORY-POINTS-') !== false) {
        // 获取原始分数值(转为整数)
        $points = intval($output);
        
        // 根据你的需求定义分数→等级的映射规则,可自行修改
        switch($points) {
            case 1:
                $output = 'A';
                break;
            case 2:
                $output = 'B';
                break;
            case 3:
                $output = 'C';
                break;
            case 4:
                $output = 'D';
                break;
            default:
                $output = 'N/A'; // 处理未匹配的分数
                break;
        }
    }
    return $output;
}
  1. 保存代码后,直接在你的报告模板中使用原Watupro短码%%-CATEGORY-POINTS-X%%即可,系统会自动把输出的数值替换成对应的等级。

方法二:创建自定义短码处理替换

如果你更倾向于用新的短码来调用,可以创建一个自定义短码,内部调用Watupro的短码并处理替换:

  1. 同样将以下代码添加到主题functions.php或自定义插件:
add_shortcode('watupro_category_grade', 'watupro_category_grade_shortcode');

function watupro_category_grade_shortcode($atts) {
    // 获取传入的分类标识X
    $atts = shortcode_atts(array(
        'category' => '',
    ), $atts);
    
    if (empty($atts['category'])) return '';
    
    // 调用Watupro原短码获取分数
    $points_shortcode = '%%-CATEGORY-POINTS-' . esc_attr($atts['category']) . '%%';
    $points = intval(do_shortcode($points_shortcode));
    
    // 分数→等级映射,可按需修改
    $grade = match($points) {
        1 => 'A',
        2 => 'B',
        3 => 'C',
        4 => 'D',
        default => 'N/A'
    };
    
    return $grade;
}
  1. 在报告模板中使用自定义短码,比如[watupro_category_grade category="X"](把X替换为你的实际分类标识)。

注意事项

  • 可以根据你的实际需求修改switch或match语句中的分数与等级对应关系,比如增加更多分数情况、调整等级标签。
  • 如果使用主题的functions.php,建议先备份文件,并且在主题更新后重新检查代码是否保留(最好使用自定义插件来存放代码,避免主题更新丢失)。
  • 测试前确保Watupro的原短码能正常输出数值,再验证替换后的等级是否正确显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:04:18