php 我尝试将数组json_encode为字符串,以将其设置为html数据属性,但其输出结果不是语音标记

ubby3x7f  于 2024-01-05  发布在  PHP
关注(0)|答案(1)|浏览(117)

正如标题所述,我试图将JSON数据从PHP传递到WordPress环境中的HTML数据属性,但呈现的数据是用HTML实体而不是语音标记输出的。
注:此方法以前有效
功能:

function build_ga_tracking($category, $label, $action = 'click', $value = '', $event = 'event') {
  $tracking = array(
    'event' => $event,
    'category' => $category,
    'label' => $label,
    'action' => $action,
    'value' => $value
  );

  $jsonEncodedTracking = json_encode($tracking);

  return "data-tracking='".$jsonEncodedTracking."'";
}

echo("<li><a href='" . $item->url . "' " . build_ga_tracking('Primary Menu', $cleanTitle, 'Click-'.$cleanTitle) . ">" . $title . "</a></li>");

字符串
其输出为:

<li><a href="http://localhost:8080/category/money-tips/" data-tracking="{&quot;event&quot;:&quot;event&quot;,&quot;category&quot;:&quot;Primary Menu&quot;,&quot;label&quot;:&quot;Money Tips&quot;,&quot;action&quot;:&quot;Click-Money Tips&quot;,&quot;value&quot;:&quot;&quot;}">Money Tips</a></li>


注:

echo(build_ga_tracking('Primary Menu', $cleanTitle, 'Click-'.$cleanTitle));


输出正确:

data-tracking='{"event":"event","category":"Primary Menu","label":"Money Tips","action":"Click-Money Tips","value":""}'


我试过使用esc_attr()esc_js()wp_json_encode()没有运气。

jhdbpxl9

jhdbpxl91#

这纯粹是Chrome开发工具的渲染问题。当检查源代码时,它正确输出。
两天的调试和一个巨大的脸手掌后。

相关问题