不能在wp_enQueue_脚本中使用常量吗?

时间:2011-01-04 作者:kaiser

我得到了以下设置:

父级(&L);子主题(父主题包含基本内容,但不包含循环、样式等)

  • 函数内部。父主题的php,我称之为我的init。文件,它在请求父函数时关心不同的内容。php文件(在初始化之前)我调用我的常量。定义主题版本等的php文件

    wp_enqueue_script($name, $path, $parent, VERSION_CONSTANT, $footer)

    和设置

    $footer == true;

    我希望

    a) 在我的页脚中加载的脚本和

    b) 获取*VERSION\\u常量*作为我的版本号。

    但它不起作用。

    以下是我的解决方法:

    设置$footer == true;

  • 将其打包到函数中
  • 将该函数的操作添加到顶部的挂钩中
    • 。。。尽管它很愚蠢:它就像一个符咒,常量值get插入正确。

      有谁能证实这一点,或者有什么解释吗?我希望在加载wp\\u enqueue\\u script get的位置找到这个特定问题的原因。这将解释为什么它与函数一起工作(稍后加载)。

      谢谢

    2 个回复
    最合适的回答,由SO网友:Rarst 整理而成

    父主题的functions.php 已加载after 儿童主题。因此,在加载子主题时,您的常量不可用。

    在加载两个主题之后,在挂钩上实际运行任何主题代码是一种很好的做法。最早在after_setup_theme 钩对于排队,明确记录如下:init 应使用挂钩。

    SO网友:EAMann

    我需要查看您的完整代码实现,以确保。。。但请记住wp_enqueue_script() 总是需要called inside a function 附加到“init”操作挂钩。仅仅将函数调用放在代码中不会起任何作用。

    您需要遵循以下格式:

    // ... some code ... //
    add_action(\'init\', \'my_scripts\');
    // ... some code ... //
    
    
    function my_scripts() {
        $footer = true;
        wp_enqueue_script($name, $path, $parent, VERSION_CONSTANT, $footer)
    }
    
    也就是说,我不知道你为什么要$footer 在外部,您可以轻松地将其设置为内联。和$footer == true; 不设置的值$footer ... 你是evaluating equality.

    结束

    相关推荐