WordPress的儿童主题入队和出队和本地化

时间:2019-08-30 16:12:53

标签: wordpress enqueue

我正在尝试从子主题中加入已编辑的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。而且它不起作用。

感谢您的帮助。

1 个答案:

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