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

修改WordPress Traveler主题滑块函数实现小数精度(PHP)

问题:WordPress Traveler主题滑块精度无法改为0.1的排查方向

背景与修改操作

我正在使用WordPress Traveler主题,Tour选项中的Max People滑块需要调整为0.1的精度以适配其他场景。我修改了以下两个文件中的ot_type_numeric_slider函数:

  • wp-content\plugins\traveler-code\st-option-tree\includes\ot-functions-option-types.php
  • wp-content\plugins\st-option-tree\includes\ot-functions-option-types.php

原代码片段

$_options = explode(',', $field_min_max_step);
$min      = isset($_options[0]) ? $_options[0] : 0;
$max      = isset($_options[1]) ? $_options[1] : 100;
$step     = isset($_options[2]) ? $_options[2] : 1;

修改后的完整函数代码

function ot_type_numeric_slider($args = array())
{
    extract($args); // phpcs:ignore

    // Check for description.
    $has_desc = !empty($field_desc);

    // Min, max, step options.
    $_options = explode(',', $field_min_max_step);
    $min = isset($_options[0]) ? floatval($_options[0]) : 0;
    $max = isset($_options[1]) ? floatval($_options[1]) : 100;
    $step = isset($_options[2]) ? floatval($_options[2]) : 0.1;

    // Format setting outer wrapper.
    echo '<div class="format-setting type-numeric-slider ' . ($has_desc ? 'has-desc' : 'no-desc') . '">';

    // Description.
    echo $has_desc ? '<div class="description">' . wp_kses_post(htmlspecialchars_decode($field_desc)) . '</div>' : '';

    // Format setting inner wrapper.
    echo '<div class="format-setting-inner">';

    echo '<div class="ot-numeric-slider-wrap">';

    echo '<input type="hidden" name="' . esc_attr($field_name) . '" id="' . esc_attr($field_id) . '" class="ot-numeric-slider-hidden-input" value="' . esc_attr($field_value) . '" data-min="' . esc_attr($min) . '" data-max="' . esc_attr($max) . '" data-step="' . esc_attr($step) . '">';

    echo '<input type="text" class="ot-numeric-slider-helper-input widefat option-tree-ui-input ' . esc_attr($field_class) . '" value="' . esc_attr($field_value) . '" readonly>';

    echo '<div id="ot_numeric_slider_' . esc_attr($field_id) . '" class="ot-numeric-slider"></div>';

    echo '</div>';

    echo '</div>';

    echo '</div>';
}

修改核心内容

将$min、$max、$step的赋值逻辑从直接使用字符串值,改为通过floatval()转换为浮点数;同时将默认步长从1调整为0.1。

当前问题

修改完成后,滑块仍然以整数精度运行。该文件中未发现其他与滑块相关的代码,且官方支持表示仅需修改此文件,请问问题可能出在哪里?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 10:13:35