Wordpress:如何正确排队这个javascript文件?

时间:2015-10-07 02:31:04

标签: javascript php wordpress callback

我在排队脚本时遇到了麻烦。我不确定为什么它不起作用。我知道脚本代码本身可以工作。

另一个问题 - 如果我试图包含这个.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>

1 个答案:

答案 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__ )。但是现在您想要从另一个脚本中排队一个文件,您必须指定文件名以轻松获取正确的目录。