将脚本添加到WordPress中特定位置的页面

时间:2016-10-19 作者:hguser

通常我们使用wp-equeue-script 将脚本添加到页眉或正文部分内的页面,但如果我想在某个位置(如页面中间)插入脚本文件如何?

此外,是否可以生成动态脚本?

例如http://xx.com/xx.js?query=xxx 哪个将根据查询返回不同的脚本?

2 个回复
最合适的回答,由SO网友:morksinaanab 整理而成

要回答第一个问题,您始终可以添加<script> 在模板文件中的任意位置标记,这能解决问题吗?或者添加一个函数<?php add_my_script(); ?> 放在模板文件的某个地方functions.php 并进行更多检查,以确定是否需要在该位置上添加脚本并将其添加。

然而,您真的需要它在页面中的某个位置吗?它不应该影响脚本的放置位置,因为您可以将功能包装在函数中,并且只在调用函数时运行它。

要回答你的第二个问题,是的,你可以,之前已经回答过了。https://stackoverflow.com/questions/3943198/parse-a-javascript-file-through-php

所以不要打电话。js文件,调用。呈现脚本的php文件。只需确保使用header("Content-Type: application/javascript"); 不管你想要什么逻辑

SO网友:Benoti

使用wp\\u enqueue\\u script()时,根据函数中传递的第五个参数,将文件排入页眉或页脚。

一种根据页面查询将变量引入js文件的干净方法:wp\\u localize\\u script()将本地化或特殊请求引入js文件。

 // Register the script
 wp_register_script( \'some_handle\', \'path/to/myscript.js\' );

// Localize the script with new data
$translation_array = array(
   \'some_string\' => __( \'Some string to translate\', \'plugin-domain\' ),
   \'a_value\' => \'10\'
);
wp_localize_script( \'some_handle\', \'object_name\', $translation_array );

// Enqueued script with localized data.
wp_enqueue_script( \'some_handle\' );
在js脚本中,您可以检索变量

<script>
  // alerts \'Some string to translate\'
  alert( object_name.some_string);
</script> 
阅读更多有关codex的信息wp_localize_script

如果要根据查询加载不同的js文件,则必须使用wp\\u enqueue\\u scripts action将php语句添加到函数调用中(注意结尾的S)。