WP标签内的WP短代码

时间:2017-09-18 19:21:45

标签: html wordpress shortcode

我需要定期用这样的选项更新一堆表格:

<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)可能建议使用不同的机制来更新这些表格而不使用短代码?

1 个答案:

答案 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>