我在排队脚本时遇到了麻烦。我不确定为什么它不起作用。我知道脚本代码本身可以工作。
另一个问题 - 如果我试图包含这个.js文件,那么js代码本身应该被<script></script>
包围吗?
编辑 - **我忘了提到我正在为现有插件制作扩展名。我想在扩展程序的functions.php文件中编写用于入队的代码。我该怎么做呢?以下是我的设置。 **注意这给了我错误:Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'Find_Do_For_Anspress' does not have a method 'fd_enqueue_front' in C:\wamp\www\wordpress\wp-includes\plugin.php on line 503
我的设置
anspress-问题-answer.php
require_once __DIR__ . '/../find-do-for-anspress/find-do-for-anspress.php'; //I left out most of the other code but this correctly includes the file below
找到-DO换anspress.php
public function includes() {
require_once( FIND_DO_FOR_ANSPRESS_DIR.'/functions.php' ); // Again, I'm keeping it short and simple
}
的functions.php
add_action('wp_enqueue_scripts', array( $this, 'fd_enqueue_front'));
function fd_enqueue_front()
{
wp_enqueue_script( 'braintree-js', plugin_dir_url( 'braintree-js.js' ) . 'braintree-js.js', array() );
}
布伦特里-js.js
<script src="https://js.braintreegateway.com/v2/braintree.js"></script>
<script>
var clientToken = "12345";
braintree.setup(clientToken, "dropin", {
container: "payment-form"
});
</script>
答案 0 :(得分:0)
将脚本排队是一个两步过程。首先,您将脚本排入队列,然后注册保存它的函数。
像这样:
//Enqueue script in a function
function theme_name_scripts() {
wp_enqueue_script( 'braintree-js', plugin_dir_url( 'braintree-js.js' ) . 'braintree-js.js', array() );
}
//Register the function
add_action( 'wp_enqueue_scripts', 'theme_name_scripts' );
See Codex了解详情。
旁注;如果您要从运行文件的同一个脚本中排队文件,则可以使用plugin_dir_url( __FILE__ )
。但是现在您想要从另一个脚本中排队一个文件,您必须指定文件名以轻松获取正确的目录。