用Javascript输出短代码

Wordpress: Outputting shortcode with Javascript?

本文关键字:代码 输出 Javascript      更新时间:2023-09-26
<script language=”javascript”>
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?

短代码只在服务器端工作。如果您想绕过它,可以使用AJAX提交值,在PHP中调用do_shortcode(),以JSON形式返回结果,然后写入页面。

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

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

尝试使用' backtick (Template literal) https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals?retiredLocale=it

<script language=”javascript”>
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”>
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>