Wordpress Child 主题入队、出队和本地化

Wordpress Child Theme Enqueue and Dequeue and Localize

我正在尝试从我的 child 主题中加入一个编辑后的 ​​js 文件,并将原始文件从 parent 中加入队列。它应该很简单,但是,parent 主题正在调用一个函数,所有入队都在该函数中进行。我设法使它入队但没有出队。另外,原来enqueue后面是wp_localize_script()函数

如果我将整个函数复制到我的 child 它可以工作,但我正在寻找一种更清晰、更好的方法来实现它。

这里是原始代码的设置方式(Parent主题):

在function.php中调用了这个函数

        add_action('wp_enqueue_scripts', 'wpestate_scripts'); 

wpestate_scripts函数在另一个文件中找到,css_js_include.php

function wpestate_scripts() { 

// A bunch of files being enqueued and some variables being assigned

 wp_enqueue_script('wpestate_property', trailingslashit( get_stylesheet_directory_uri() ).'js/property.js',array('jquery','wpestate_control'), '1.0', true);   
        wp_localize_script('wpestate_property', 'property_vars', 
            array( 
                // Variables being localized
              )
        );

 }

我已经将 wp_dequeue_script('wpestate_property')wp_deregister_script('wpestate_property') 添加到我的 child function.php。而且它没有用。

感谢任何帮助。

您需要确保您正在调用的函数在脚本被父级加入队列后被触发。通常,这是通过为 add_action().

$priority 参数添加一个高整数值来完成的
add_action( 'wp_enqueue_scripts', 'modify_wpestate_scripts', 99 );
function modify_wpestate_scripts() {
    wp_dequeue_script('wpestate_property');

    // Enqueue your custom script instead
    wp_enqueue_script( 'custom-wpestate_property', 'custom-wpep.js', [], '1.0', true );
    wp_localize_script('custom-wpestate_property', 'property_vars', 
        array( 
            // Variables being localized
          )
    );
}

这会将它添加到与父函数相同的操作挂钩 (wp_enqueue_scripts),但优先级设置为 99 因此它稍后运行(默认优先级为 10 ).