【问题标题】:Wordpress Child Theme Enqueue and Dequeue and LocalizeWordpress 儿童主题入队、出队和本地化
【发布时间】:2019-08-30 16:12:53
【问题描述】:

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

 }

我已经为我的孩子function.php 添加了wp_dequeue_script('wpestate_property')wp_deregister_script('wpestate_property')。它没有用。

感谢任何帮助。

【问题讨论】:

    标签: wordpress enqueue


    【解决方案1】:

    您需要确保您调用的函数在脚本被父级加入队列后被触发。通常这是通过将一个高整数值添加到 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)。

    【讨论】:

    • 伟大的@Xhynk。我应该如何处理wp_localize_script() fucntion 和 vars?
    • 我已经更新了代码 - 您可以将您的自定义脚本排入自定义句柄并对其进行本地化
    • 太棒了。我期待有一种方法可以避免 wp_localize_script() 的复制和粘贴。有办法吗?谢谢。
    • 我认为没有办法以编程方式“复制”。除非父主题将本地化存储为您可以访问的变量(根据您的示例,它看起来不像)。不幸的是,由于它们以相同的优先级排队和本地化,因此也没有办法拦截该本地化。您可以尝试将自定义脚本的句柄更改为wpestate_property,但我认为它不会起作用
    猜你喜欢
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    • 2019-08-19
    • 2020-03-06
    • 2013-12-03
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多