方括号已更改为编码字符[WordPress]

时间:2018-11-21 20:57:40

标签: javascript wordpress shortcode

这是问题所在,我有一个JS代码块,出于速度原因,我非常想保持其内联。过去这没有出现问题,但是对于此特定功能,这种情况正在发生。我正在使用PHP输出缓冲区通过短代码来呈现它。

呈现的代码:

function get_price(arr, val) {
          var price = Object.keys(arr).reduce((a, c) => {
            var s = c.trim();
            if (/\d+\-\d+/.test(s)) {
              var range = s.split("-");
              if (+val >= parseInt(range[0]) && +val <= parseInt(range&#091;1&#093;)) {
                a = arr&#091;c&#093;;
              }
            } else {
              s = s.replace(/\D/g, "");
              if (+val >= +s) {
                a = arr[c];
              }
            }
            return a;
          }, 0);
          return price;
}

发送的代码:

    function get_price(arr, val) {
                    var price = Object.keys(arr).reduce((a, c) => {
                      var s = c.trim();
                      if (/\d+\-\d+/.test(s)) {
                        var range = s.split("-");
                        if (+val >= parseInt(range[0]) && +val <= parseInt(range[1])) {
                          a = arr[c];
                        }
                      } else {
                        s = s.replace(/\D/g, "");
                        if (+val >= +s) {
                          a = arr[c];
                        }
                      }
                      return a;
                    }, 0);
                    return price;
    }

我也很想知道为什么会发生这种情况,所以请大家给予帮助!

如果需要,我还可以发送更多代码,但是不想用不必要的代码来重载我的问题。

1 个答案:

答案 0 :(得分:0)

所以...不知道为什么这行得通,但我将2个有问题的区域转换为JS vars,然后不再对代码进行编码。

 function get_price(arr, val) {
          var price = Object.keys(arr).reduce((a, c) => {
            var s = c.trim();
            if (/\d+\-\d+/.test(s)) {
              var range = s.split("-");
              var t1 = parseInt(range[1]); // new added var
              var t2 = arr[c];  // new added var 
              if (+val >= parseInt(range[0]) && +val <= t1) { // replaced code with t1 here
                a = t2; // replaced code with t2 here
              }
            } else {
              s = s.replace(/\D/g, "");
              if (+val >= +s) {
                a = arr[c];
              }
            }
            return a;
          }, 0);
          return price;
}

如果有人知道为什么并且想通过分享他们的知识来帮助宇宙,那就继续吧。如果没有的话,希望这对某人有帮助!