0

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

如果我将整个功能复制给我的孩子,它就可以工作,但我正在寻找一种更清洁、更好的方法来实现这一目标。

以下是原始代码的设置方式(父主题):

在 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')andwp_deregister_script('wpestate_property')到我的孩子function.php。它没有用。

任何帮助表示赞赏。

4

1 回答 1

2

你需要确保你调用的函数在脚本被父进程加入队列后被触发。通常这是通过将高整数值添加到 的$priority参数来完成的add_action()

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)。

于 2019-08-30T18:36:39.097 回答