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
).
我正在尝试从我的 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
).