我需要定期用这样的选项更新一堆表格:
<option value="Asym. Spinnaker Std colors Size 4{p:1000usd|c:US-SPI-FSASY|y:US-SPI-S}">Std. Color Asym. Spinnaker – Size 4 – $ 1000</option>
我创建了一个简短的代码,用于读取需要更新.csv文件并“应该”更新表单的数据:
<option value="Asym. Spinnaker Std colors Size 4{p:[price line = "2" column = "5"]usd|c:US-SPI-FSASY|y:US-SPI-S}">Std. Color Asym. Spinnaker – Size 4 – $ [price line = "2" column = "5"]</option>
不幸的是,短代码不会在标签内部解释,只有短代码的第二个实例有效 - 第一个实例只是按原样呈现:
<option value="Asym. Spinnaker Std colors Size 4{p:[price line = "2" column = "5"]usd|c:US-SPI-FSASY|y:US-SPI-S}">Std. Color Asym. Spinnaker – Size 4 – $ 1000</option>
知道如何(1)我可以做这项工作,或者(2)可能建议使用不同的机制来更新这些表格而不使用短代码?
答案 0 :(得分:0)
Shortcodes do not evaluate within HTML attributes。它是一种安全功能,可防止编码不良和跨站点脚本漏洞(XSS)。如果你想绕过它,你需要在属性中添加一个PHP标记和do_shortcode
调用(警告:注意属性清理你添加到标记属性的任何东西!)。
<?php
$valueAttrContent = do_shortcode('Asym. Spinnaker Std colors Size 4{p:[price line = "2" column = "5"]usd|c:US-SPI-FSASY|y:US-SPI-S}');
$innerHTML = do_shortcode('Std. Color Asym. Spinnaker – Size 4 – $ [price line = "2" column = "5"]');
?><option value="<?= $valueAttrContent ?>"><?= $innerHTML ?></option>