如何使用父主题的入队方法

时间:2016-09-15 作者:Jeff

根据codex, 创建子主题时,必须手动将父主题的脚本排队。

我的父主题具有逻辑,可以有条件地显示各种css文件、缓存的css和从主题选项仪表板生成的动态css。主题名为卡米尔。

function camille_scripts() {    
    wp_register_style(\'bootstrap\', get_template_directory_uri() . \'/css/bootstrap.css\');
    wp_enqueue_style( \'bootstrap\' );
    //...more scripts & styles
}
function camille_enqueue_dynamic_styles( ) { 
    //renders wp_options to physical file & enqueues physical file
    //...
    wp_register_style( $cache_file_name, $css_cache_file_url, $cache_saved_date);
    wp_enqueue_style( $cache_file_name );
    //...
}
我试图在我自己的主题函数中调用这些方法。php。。。

function my_theme_scripts() {
    camille_scripts();
    camille_enqueue_dynamic_styles();
}
add_action(\'wp_enqueue_scripts\', \'my_theme_scripts\');
但没有包括任何内容。我检查了标记,没有任何父主题CSS。接下来,我尝试将这些方法的完整源代码复制到我的函数中。php和所有按常规呈现的样式。但是,我不想这样做,因为复制粘贴代码违反了DRY,如果主题更新,我的子主题将不会接受更改。

为什么我的父主题样式没有呈现到标记中?当父级使用复杂的逻辑生成CSS并将其排队时,是否有包含父级CSS的最佳实践?

1 个回复
SO网友:C C

如果所需函数位于父主题的functions.php 然后可以将它们包含在当前执行的子主题中functions.php 通过此呼叫:

include( get_template_directory() . \'/functions.php\');
get_template_directory() 即使使用子主题,也会查找父目录。

注意,这将运行在父主题的functions.php. 所以不管它做什么,当你把它拉进来的时候,它都会做。

如果父母的functions.php 如果你不想让他们排队,你可以随时让他们排队(after 呼叫get_template_directory() ) 在孩子的functions.php 使用适当的出列功能:wp_dequeue_script()wp_dequeue_style()

相关推荐

Child-theme breaks site

所以,我有一个子主题,里面除了所需的CSS文件之外什么都没有。一旦我激活了这个儿童主题,我的整个网站就关闭了。最后我有两个问题:激活一个只有CSS的子主题怎么能破坏我的网站</我怎样才能回到我原来的主题</这些是网站给我的错误:Warning: require_once(/wp-content/themes/interio_child/admin/options-framework.php) [function.require-once]: 无法打开流:中没有此类文件或目录/wp-c