猿问

您是否应该在 wp_register_script/style 和 wp_enqueue_

我想知道在注册脚本并指定依赖项后,在将其排队时,您是否应该再次指定依赖项?


按照这个好的逻辑,我会说不,但我不知道......你的灯很感激!


实施例1


add_action( 'wp_enqueue_scripts', 'theme_scripts' );

function theme_scripts() {


  if( ! is_admin() ) {


    wp_register_script( 'script_one_js', '//path/to/script/one.js' );

    wp_register_script( 'script_two_js', '//path/to/script/two.js', array( 'script_one_js' ) );


    // Specifying dependency again

    wp_enqueue_script( 'script_one_js' );

    wp_enqueue_script( 'script_two_js', array( 'script_one_js' ) );


  };


};

实施例2


add_action( 'wp_enqueue_scripts', 'theme_scripts' );

function theme_scripts() {


  if( ! is_admin() ) {


    wp_register_script( 'script_one_js', '//path/to/script/one.js' );

    wp_register_script( 'script_two_js', '//path/to/script/two.js', array( 'script_one_js' ) );


    // NOT specifying dependency again

    wp_enqueue_script( 'script_one_js' );

    wp_enqueue_script( 'script_two_js' );


  };


};


一只甜甜圈
浏览 88回答 1
1回答

达令说

不,您不需要两次指定依赖项。要了解该选项为何存在,您需要了解wp_enqueue_script和 的wp_register_script用途。在将脚本放入队列之前,您根本不必注册脚本,您可以单独使用wp_enqueue_script它,如果尚未注册,它将注册它 - 这就是为什么您在两个脚本中都有相同的选项(包括设置依赖项)功能。例如,您可以将其添加到您的functions.php广告中,它将同时注册和排队脚本:add_action( 'wp_enqueue_scripts', 'theme_scripts' );function theme_scripts() {    if( ! is_admin() ) {        wp_enqueue_script( 'script_1_js', '//path/to/script/one.js' );        wp_enqueue_script( 'script_2_js', '//path/to/script/two.js', array( 'script_1_js' ) );    }}那为什么还要注册脚本呢?有很多优点,例如:您可以在一个位置使用正确的依赖项和其他设置注册一次脚本,然后仅在需要它们的页面或情况下加载它们。除了不必要地加载脚本之外,这也意味着您不必填写在您使用该脚本的函数的每个地方的所有参数中wp_enqueue_script。例如你可以在你的functions.php中包含这个:add_action( 'wp_enqueue_scripts', 'theme_scripts' );function theme_scripts() {    if( ! is_admin() ) {        wp_register_script( 'script_1_js', '//path/to/script/one.js' );        wp_register_script( 'script_2_js', '//path/to/script/two.js', array( 'script_1_js' ), '1.1', true );    }}现在,例如,如果您只需要加载script_two_js2 个特定的页面模板,则可以添加wp_enqueue_script( 'script_1_js' );到这些模板中,而不必每次都添加依赖项、版本,因为它从注册时就已经知道了这一点。您还可以使用 注册您的脚本wp_register_script,如果您有另一个脚本在其依赖项中包含此脚本,那么它将在该脚本之前自动加载,而无需将其排队。例如,如果您有 four.js,它依赖于其他 3 个脚本,例如add_action( 'wp_enqueue_scripts', 'theme_scripts' );function theme_scripts() {    if( ! is_admin() ) {        wp_register_script( 'script_1_js', '//path/to/script/one.js' );        wp_register_script( 'script_2_js', '//path/to/script/two.js' );        wp_register_script( 'script_3_js', '//path/to/script/three.js' );        wp_register_script( 'script_4_js', '//path/to/script/four.js', array( 'script_1_js', 'script_2_js', 'script_3_js' );    }}现在您可以使用 at 加载脚本,wp_enqueue_script( 'script_4_js' );它将自动加载脚本一、二和三。希望这有助于回答您的问题!
随时随地看视频慕课网APP
我要回答