javascript - 是否可以从 WordPress 模板 PHP 文件更改 script.js 文件中的 JS 字符串变量?
问题描述
我有一个我想解决的问题,但不完全了解如何解决它,并且想知道这里是否有人知道方法。
在我的 WordPress 主题中,我有一个位于 JS 文件夹中的 script.js 文件,其中包含一个用于在页面加载时加载 Instagram 提要的脚本。
$(window).on('load', function(){
$.instagramFeed({
'username': 'usernamehere',
'container': "#instagram-feed-demo",
'display_profile': false,
'display_biography': false,
'display_igtv': false,
'items': 9,
'items_per_row': 3,
'styling': false
});
});
在我的 WordPress 单页模板中,我想使用自定义字段填充用户名字符串,但是如果我将脚本移动到脚本标记中的模板中,它不起作用但在 script.js 文件中可以正常工作。
有人知道从单个模板中填充字符串的方法吗?
解决方案
不确定我是否正确理解您的需求,但您可以检查加载 script.js 文件的模板(使用wp_enqueue_script
函数)并使用相同的处理程序名称添加另一个wp_localize_script
函数调用,并将其传递给可用于的变量数组的JavaScript。
例子:
wp_enqueue_script('script-handler', 'url to the script.js file', []);
wp_localize_script('script-handler', 'jsObjectName', [
'username' => $usernamehere,
]);
jsObjectName
使用该函数创建的 js 对象wp_localize_script
将在调用 script.js 文件之前,使其值可在脚本中使用。
现在将 Instegram 代码更改为如下所示:
$(window).on('load', function(){
$.instagramFeed({
'username': jsObjectName.username,
'container': "#instagram-feed-demo",
'display_profile': false,
'display_biography': false,
'display_igtv': false,
'items': 9,
'items_per_row': 3,
'styling': false
});
});
推荐阅读
- javascript - 如何将输入的 html 数据作为其变量传递给 javascript 函数并获得响应
- react-native - 在本地反应本地加载文本文件
- python - 如何在Python中对有异常的列表进行排序
- javascript - SignUp 和 SignIn 组件之间的路由
- apache-nifi - NiFi中漏斗的目的
- c# - 有什么方法可以使用 SignInManager
.NET Core 3.1 控制台应用程序中的 .PasswordSignInAsync? - lua - Lua - 你可以在运行时独立于程序的其余部分运行代码吗?
- flutter - 防止“尝试使用具有可侦听/流子类型的提供程序”颤动错误
- pyspark - Spark DataFrame 获取所有
每个元素的 xml 文档中的 xml 标签
- java - 带有 Flyway 的 SpringBoot 2:spring.flyway.locations 被忽略