繁体   English   中英

Wordpress:使用 Javascript 输出短代码?

[英]Wordpress: Outputting shortcode with Javascript?

<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

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

尝试使用`反引号(模板文字) 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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM