J'essaie de charger le style.css
de mon thème enfant après que le thème parent style.css
a déjà été chargé. Cependant, j'ai remarqué que le style.css
n'a pas besoin d'être mis en file d'attente puisqu'il est implicitement mis en file d'attente par le noyau WordPress.
Donc, je l'ai explicitement mis en file d'attente comme ceci, où il dépend du parent-style
ayant déjà chargé:
function enqueue_theme_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
wp_enqueue_style( 'child-style', get_stylesheet_directory_uri(). '/style.css', array('parent-style') );
}
add_action( 'wp_enqueue_scripts', 'enqueue_theme_styles', PHP_INT_MAX );
Le problème avec ceci est que c'est maintenant chargé deux fois . Une fois implicitement, puis explicitement. Comment puis-je charger le style.css
de mon enfant après le parent sans le charger deux fois?
Voici à quoi ressemble la head
:
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?php bloginfo('name'); ?> | <?php is_front_page() ? bloginfo('description') : wp_title(''); ?></title>
<?php if(isset($themeum['favicon'])){ ?>
<link rel="shortcut icon" href="<?php echo $themeum['favicon']; ?>" type="image/x-icon"/>
<?php }else{ ?>
<link rel="shortcut icon" href="<?php echo get_template_directory_uri().'/images/plus.png' ?>" type="image/x-icon"/>
<?php } ?>
<link rel="stylesheet" type="text/css" href="">
<link rel="profile" href="http://gmpg.org/xfn/11">
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
<!--[if lt IE 9]>
<script src="<?php echo get_template_directory_uri(); ?>/js/html5.js"></script>
<![endif]-->
<?php if(isset($themeum['before_head'])) echo $themeum['before_head'];?>
<?php wp_head(); ?>
</head>
Comme l'a souligné @Andy Macaulay-Brook, WordPress ne charge pas child-theme's
style.css
. Je suppose que le thème parent pourrait être en-queue.
style.css
thème enfant puis le mettre en file d'attentestyle.css
Vous pouvez détourner le fichier style.css du thème enfant à l'aide de la poignée. Vous pouvez trouver la poignée en consultant le thème parent (en supposant qu'il soit chargé à partir de celui-ci) ou en consultant le lien du source de la page.
Par exemple:
Le lien depuis le site en utilisant Twenty Fifteen theme
ressemble à ceci
<link rel='stylesheet' id='twentyfifteen-style-css' href='http://wp.dev/wp-content/themes/twentyfifteen/style.css?ver=4.5.3-alpha-37528' type='text/css' media='all' />
Pour lequel le handle est twentyfifteen-style
qui est le id de la balise link mais sans -css
.
Donc, nous pouvons le retirer en utilisant wp_dequeue_style
accrocher à wp_enqueue_scripts
wp_dequeue_style('twentyfifteen-style');
En modifiant la priorité du wp_enqueue_scripts
moins que la valeur par défaut (10) et en chargeant le thème parent style.css
. (Je ne suis pas sûr de cela doit vérifier)
function wpse_227769_enqueue_scripts() {
//Load parent theme style.css here
}
add_action( 'wp_enqueue_scripts', 'wpse_227769_enqueue_scripts', 9 );