子主题不会加载所有样式

时间:2018-08-30 作者:Catalin

我知道这件事已经贴了好几次了,但我想不出来。我请求你的帮助。我以前为其他WordPress主题创建过主题child,但这一个让我很难受。

主题名为:neobeat

我的CSS文件如下所示:

Theme Name:   Neobeat Child
Theme URI:    http://example.com/
Description:  Neobeat Child Theme
Author:       Something
Author URI:   http://example.com
Template:     neobeat
Version:      1.0.0
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Tags:         light, dark, two-columns, right-sidebar, responsive layout
Text Domain:  neobeat-child
以及我的职能。php文件如下所示:

add_action( \'wp_enqueue_scripts\', \'neobeat_child_enqueue_styles\' ); 
function neobeat_child_enqueue_styles() {
 $parent_style = \'neobeat-theme-style\'; 
 wp_enqueue_style( $parent_style, get_template_directory_uri() . 
\'/style.css\' );

wp_enqueue_style( \'style\',
    get_stylesheet_directory_uri() . \'/style.css\',
    array( $parent_style ),
    wp_get_theme()->get(\'Version\')
);
}
函数中父文件夹中的$句柄。php如下所示:

wp_enqueue_style( \'neobeat-theme-style\', get_stylesheet_uri(), 
       array( \'font-awesome\', \'material-icons\', \'magnific-popup\',
       \'linear-icons\' ), NEOBEAT_THEME_VERSION );
当我上传neabeat子文件夹中的文件时:

未加载阵列中的所有CSS文件:字体可怕、材质图标、线性图标CSS文件的顺序不同,它会更改顺序

1 个回复
SO网友:Jacob Peattie

子主题在父主题之前加载,因此当您使用父主题的句柄将样式表排队时,父主题无法注册或将具有该名称的样式表排队。因此,当您将名为neobeat-theme-style, 父样式表将无法将具有该名称的样式表排入队列。

因此,这在父级中没有任何作用:

wp_enqueue_style( \'neobeat-theme-style\', get_stylesheet_uri(), 
       array( \'font-awesome\', \'material-icons\', \'magnific-popup\',
       \'linear-icons\' ), NEOBEAT_THEME_VERSION );
这意味着只有在样式表中排队的样式表才是您在样式表中排队的样式表:

$parent_style = \'neobeat-theme-style\'; 
wp_enqueue_style( $parent_style, get_template_directory_uri() . \'/style.css\' );

wp_enqueue_style( \'style\',
   get_stylesheet_directory_uri() . \'/style.css\',
   array( $parent_style ),
   wp_get_theme()->get(\'Version\')
);
请注意,这里没有提到任何其他样式表。所以他们不会排队。

如果要将父主题的样式表从子主题中排队,则还需要包含其依赖项和版本。

我建议使用相同的句柄注册父主题的样式,从而防止父主题将子主题的样式表排入队列,然后将其用作子主题样式表的依赖项:

// Parent theme\'s stylesheet with its dependencies.
wp_register_style(
    \'neobeat-theme-style\', 
    get_parent_theme_file_uri( \'style.css\' ),
    [\'font-awesome\', \'material-icons\', \'magnific-popup\', \'linear-icons\'],
    NEOBEAT_THEME_VERSION
);

// Child theme\'s stylesheet.
wp_enqueue_style(
    \'neobeat-child-style\',
    get_stylesheet_uri(),
    [\'neobeat-theme-style\'],
    wp_get_theme()->get( \'Version\' )
);

结束

相关推荐

Child-theme breaks site

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