如何在WordPress中将PHP变量传递给JavaScript
当你构建一个WordPress主题或插件时,有时你会有需要使用PHP数据/值的JavaScript代码。例如,您需要JavaScript代码中的这些值:
-
主页网址
主题选项值
WordPress发布数据
等等
最简单的方法是将这些值初始化为header.php主题文件或wp_head钩子。例如:
<script> var myThemeParams = { homeURL: <?php echo home_url(); ?>, themeOptions: <?php echo get_theme_mod( 'mytheme_options', false ); ?>, } </script>
尽管它可以工作,但是WordPress已经为我们提供了一个这样的功能。它叫做wp_add_inline_script。
wp_add_inline_script( $handle, $data, $position = 'after' )
-
$handle : 要向其中添加内联脚本的脚本的名称。.
$data : 包含要添加的JavaScript的字符串。
$position : 是在句柄之前还是之后添加内联脚本。
该函数将在您的JavaScript代码之前或之后添加一个内联脚本。除了将PHP变量传递给JavaScript之外,它实际上还可以做更多的事情。您可以看到另一个用例在这里。
所以,使用wp_add_inline_script为了将变量从PHP传递到JavaScript,您需要将position属性设置为before,这样它将在您的JS文件之前添加内联脚本。然后初始化一个JavaScript对象,用PHP中的数据设置值。
$myThemeParams = array( 'homeURL' => home_url(), 'themeOptions' => get_theme_mod( 'mytheme_options', false ) ); wp_enqueue_script( 'my-theme-script', get_template_directory_uri() . '/js/script.js' ); wp_add_inline_script( 'my-theme-script', 'var myThemeParams = ' . wp_json_encode( $myThemeParams ), 'before' );
在JavaScript中,您可以这样访问它:
console.log( myThemeParams.homeURL ); console.log( myThemeParams.themeOptions );
- 上一篇:如何确定PHP是否适合我的网站或WordPress?
- 下一篇:什么是网络安全?
相关问题
- 2024-04-25 传苹果正在研发基于台积电3nm工艺的定制AI服务器芯片
- 2024-04-25 研究人员利用超级电容器部件构建新型钠离子电池
- 2022-08-20 谷歌将降低低品质且非原创内容在搜索结果中的排名
- 2022-08-16 微软将于9月13日禁用IE和EdgeHTML浏览器的TLS 1.0/1.1
- 2022-08-15 Google发布网页端Read Along:教儿童掌握阅读能力
您的见解
- forex 1楼
- Hi would you mind letting me know which hosting company you're working with? I've loaded your blog in 3 completely different web browsers and I must say this blog loads a lot faster then most. Can you recommend a good web hosting provider at a fair price? Thank you, I appreciate it!
- 发布于 2022/03/17 09:11
- 热门排行
- 最新答案
-
-
如何避免重复提交表单页
binary options system strategy page 回答 2022-04-01 03:42:00
-
如何确定PHP是否适合我的网站或WordPress?
แอพเปลี่ยนรูปเป็นภาพวาด 回答 2022-03-27 18:27:12
-
自动缓存对动态页面的影响
50 deposit binary options 回答 2022-03-24 05:31:20
-
如何避免重复提交表单页
free binary options signals providers of goods 回答 2022-03-20 12:29:02
-
如何避免重复提交表单页
binary options strategy 5 minutes 15 min no loss acord 回答 2022-03-20 09:44:29
-