我正在尝试从子主题中加入已编辑的js文件,并从父主题中出出原始的js文件。这应该很简单,但是,父主题正在调用一个使所有入队都完成的函数。我设法入队,但没有出队。此外,原始队列后面还有wp_localize_script()
函数。
如果我将整个功能复制到我的孩子身上,则可以使用,但是我正在寻找一种更清洁,更好的方法来实现这一目标。
以下是设置原始代码(父主题)的方法:
在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')
和function.php
。而且它不起作用。
感谢您的帮助。
答案 0 :(得分:2)
您需要确保父脚本将脚本排入队列后,您正在调用的函数已被激活。通常,这是通过向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
)。