1
<script language=”javascript”&gt;
if (country_code==’US’)
{
document.write("[adrotate banner="1"]");
}
else
{
document.write("[adrotate banner="2"]");
}
</script>

[adrotate banner="x"]是用于 Adrotate 插件的 wordpress 简码

该脚本不起作用,因为[adrotate banner="x"]无法以某种方式输出?它使用全局保存的变量country_code

我已经尝试过两者"'(内部使用其中一个,外部使用另一个),但没有运气。

有什么办法可以解决这个问题并且仍然使用 JS?

4

2 回答 2

3

简码仅适用于服务器端。如果你想解决它,你可以使用 AJAX 提交值,do_shortcode()在你的 PHP 中调用它,以 JSON 格式返回结果,然后写入页面。

http://codex.wordpress.org/Function_Reference/do_shortcode

作为旁注,您的示例存在语法错误,因为您的字符串中有双引号,因为它不会作为短代码处理。您要么需要转义它,要么使用单引号。

于 2013-04-30T16:32:23.207 回答
1

尝试使用`反引号(模板文字)https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals?retiredLocale=it

<script language=”javascript”&gt;
var option1 = `[adrotate banner="1"]`;
var option2 = `[adrotate banner="2"]`;

if (country_code=='US') {
    document.write(option1);
} else {
    document.write(option2);
}
</script>

也可以使用 php 代码(单引号和双引号的解决方法):

<script language=”javascript”&gt;
var option1 = `<?php echo do_shortcode('[adrotate banner="1"]'); ?>`;
var option2 = `<?php echo do_shortcode('[adrotate banner="2"]'); ?>`;

if (country_code=='US') {
    document.write(option1);
} else {
    document.write(option2);
}
</script>

于 2021-08-12T09:28:14.300 回答