php - 具有完整性和跨源的 Wordpress 脚本

标签 php wordpress bootstrap-4 integrity

我正在尝试在 WordPress 上使用 wp_register_script 和 wp_enqueue_script 函数来排队脚本,该脚本具有两个属性:“integrity”和“crossorigin”。

通常我使用 PHP,我的代码如下所示:

wp_register_script('jquery', 'http' . ($_SERVER['SERVER_PORT'] == 443 ? 's' : '') . '://code.jquery.com/jquery-3.1.1.slim.min.js', false, null);
wp_enqueue_script('jquery');

与任何其他脚本。 wp_register_script 有五个参数(在本例中为四个)$handle、$src、$deps、$ver($media)。我想知道在哪里可以添加这两个属性。我已经尝试过:

wp_register_script('jquery', 'http' . ($_SERVER['SERVER_PORT'] == 443 ? 's' : '') . '://code.jquery.com/jquery-3.1.1.slim.min.js'.'integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n"', false, null);
    wp_enqueue_script('jquery');

但是没有用。

谁遇到过同样的问题? 这是来自 bootstrap 4 的原始脚本,它还具有具有相同属性(完整性和跨域)的 bootstrap 和 tether,因此,由于它非常新,我们将不胜感激任何类型的帮助。

最佳答案

我只是偶然破解了这个。对于古老的 Internet Explorer 版本,我不得不在某些 CSS 文件上使用条件语句,我想我也可以尝试将数组放入我使用的同一 wp_script_add_data 函数中。有用!

    wp_register_script('jquery3', 'https://code.jquery.com/jquery-3.3.1.min.js', array(), '3.3.1', true); // jQuery v3
    wp_enqueue_script('jquery3');
    wp_script_add_data( 'jquery3', array( 'integrity', 'crossorigin' ) , array( 'sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=', 'anonymous' ) );

引用:https://developer.wordpress.org/reference/functions/wp_script_add_data/#parameters

为了完整性:如果添加 jQuery v3,您还需要迁移 v3:http://jquery.com/download/

关于php - 具有完整性和跨源的 Wordpress 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44827134/

相关文章:

php - 如何将自定义页面模板添加到 wordpress 子主题?

html - 在 wordpress 菜单中插入一个 div 类

WordPress : Need to set zoom level in google embedded map iframe

html - Bootstrap模态高度不变

html - 如何在具有不同背景的已选中和未选中状态下设置 radio 输入的样式?

PHP - 保存 Tumblr API 的访问 token

PHP递归备份脚本

php - 去掉一个字母单词之间的空格

javascript - Youtube iframe 视频未在 WordPress 中显示

javascript - 在 ASP.NET Core Razor Pages 中使用 JavaScript 更改事件导航栏链接