【问题标题】:I want to display a php code shortcode in JavaScript, how do I do that?我想在 JavaScript 中显示一个 php 代码短代码,我该怎么做?
【发布时间】:2022-01-11 06:40:42
【问题描述】:

这是我的代码 enter image description here

<script>
    let myDiv = document.createElement("div");
    myDiv.classList.add('test');
    let my_var = `<?php echo do_shortcode("[elementor-template id="5078"]"); ?>`;
    myDiv.innerHTML = my_var;
    document.querySelector("#instagram").appendChild(myDiv);
</script>

【问题讨论】:

  • 请阅读Why not upload images of code/errors when asking a question并相应更新您的问题。
  • 为什么不直接将这些标签和短代码添加到页面中?为什么要使用 JS?正如它发布的那样,该代码无论如何都会在页面加载时执行?另外,那个 JS 是 PHP 文件还是 JS 文件?真实代码中是否有&lt;script&gt;标签,还是只是在这里添加的?

标签: javascript php wordpress


【解决方案1】:

实际上,这样做是不可能的,因为脚本是在客户端触发的,而 PHP 解释器在服务器端工作。 如果您确定需要使用 JS 来呈现一些 PHP 代码,我建议使用 wp_ajax https://codex.wordpress.org/AJAX_in_Plugins 发送请求以在服务器上发送请求,然后服务器可以返回您想要的任何 PHP 代码结果。不要忘记短代码可能会使用不会作为响应发送的其他资产。

最好的方法是在内容或 PHP 模板中以原生形式使用短代码。尤其是 elementor 模板,您可以轻松地为网站的不同位置创建模板部分。

【讨论】:

    【解决方案2】:

    这是一个外壳问题:
    你在你的 php 中使用了嵌套的双引号 - 导致破坏了回声。

    如果你的&lt;script&gt;标签在你的模板php中(所以你的php短代码可以被解析)试试这个(用单引号替换短代码双引号):

    <script>
        let myDiv = document.createElement("div");
        myDiv.classList.add('test');
        let my_var = `<?php echo do_shortcode("[elementor-template id='5078']"); ?>`;
        myDiv.innerHTML = my_var;
        document.querySelector("#instagram").appendChild(myDiv);
    </script>
    

    【讨论】:

      猜你喜欢
      • 2020-05-24
      • 1970-01-01
      • 2020-05-22
      • 2015-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-28
      • 1970-01-01
      相关资源
      最近更新 更多