gpt4 book ai didi

javascript - 在 WordPress 中转义 PHP 函数内部的 JavaScript 代码片段

转载 作者:行者123 更新时间:2023-12-02 16:25:56 25 4
gpt4 key购买 nike

基于 WordPress 的网站的一个 php 文件中的一个函数被切断,我认为是由于转义多个引号和斜杠时出现错误。

这是有问题的代码行:

echo '<script>window.jQuery || document.write(\'<script src="' . get_template_directory_uri() . '/assets/js/vendor/jquery-1.11.0.min.js"><\/script>\')</script>' . "\n";

它生成以下 html:

<script>window.jQuery || document.write('

' 之后的所有内容不显示也不执行。

作为临时解决方案,我插入了结尾 <!-- my hack --> </script>直接标记到 html 页面中。

这导致了以下 html 输出:

<script>window.jQuery || document.write('<script type='text/javascript' src='/wp-content/themes/my-theme/assets/js/vendor/modernizr-2.7.0.min.js'></script><!-- my hack --></script>

没有看到任何错误,有人可以帮忙吗?这是整个函数:

function roots_jquery_local_fallback($src, $handle = null) {
static $add_jquery_fallback = false;
if ($add_jquery_fallback) {

echo '<script>window.jQuery || document.write(\'<script src="' . get_template_directory_uri() . '/assets/vendor/jquery/dist/jquery.min.js?1.11.1"><\/script>\')</script>' . "\n";

$add_jquery_fallback = false;
}
if ($handle === 'jquery') {
$add_jquery_fallback = true;
}
return $src;
}
add_action('wp_head', 'roots_jquery_local_fallback');

最佳答案

PHP 不会对由单引号 (') 分隔的字符串内的文本进行示例,因此\' 不起作用。它确实会解释双引号 (") 内的内容,因此请颠倒单引号和双引号的使用并使用\"。

echo "<script>window.jQuery || document.write('<script src=\"" . get_template_directory_uri() . "/assets/js/vendor/jquery-1.11.0.min.js\"><\/script>\')</script>" . "\n";

关于javascript - 在 WordPress 中转义 PHP 函数内部的 JavaScript 代码片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28701402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com