web-dev-qa-db-fra.com

CSS dans le thème enfant non chargé

J'ai essayé de faire un thème enfant pour changer certaines couleurs. J'ai utilisé ce https://codex.wordpress.org/Child_Themes tutorial, mais je ne parviens toujours pas à le faire. Le problème est que je ne parviens pas à remplacer certains styles, car ma feuille de style appelée "bootstrap.css" n'est pas chargée. Mon fichier functions.php ressemble à ceci

<?php
function my_theme_enqueue_styles() {
    $parent_style = 'maxstore_theme_stylesheets'; // This is 'twentyfifteen-style' for the Twenty Fifteen theme.
    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/css/bootstrap.css' );
    wp_enqueue_style( 'child-style', get_template_directory_uri() . '/style.css', array( $parent_style ), wp_get_theme()->get('Version'));
    wp_enqueue_style( 'child-style', get_template_directory_uri() . '/css/bootstrap.css', array( $parent_style ), wp_get_theme()->get('Version'));
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
?>

Ce sont les fichiers qui sont chargés  enter image description here 

EDIT 1:J'utilise maintenant ce code et il ne fonctionne toujours pas

<?php
function my_theme_enqueue_styles() {
    $parent_style = 'maxstore_theme_stylesheets'; // This is 'twentyfifteen-style' for the Twenty Fifteen theme.
    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/css/bootstrap.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( $parent_style ), wp_get_theme()->get('Version'));
    wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/css/bootstrap.css', array( $parent_style ), wp_get_theme()->get('Version'));
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
?>

EDIT 2:La feuille de style de mon bootstrap est chargée, mais pour une raison quelconque, mon site web en utilise toujours une autre version. Comme vous pouvez le voir, il utilise 3 fois les mêmes styles et celui utilisé est la version 3.3.4. et je veux utiliser celui avec la couleur bleue qui est la version 1.0.2  enter image description here  Version 3.3.4 dans l'image et je veux utiliser la version 1.0.2 de bootstrap.  enter image description here EDIT 3:Code de functions.php que j'utilise pour le moment

<?php
function my_theme_enqueue_styles() {

    $parent_styles = array('maxstore_theme_style', 'maxstore_theme_bootstrap'); 
// This is 'twentyfifteen-style' for the Twenty Fifteen theme.

    wp_enqueue_style( $parent_styles[0], get_template_directory_uri() . 
'/style.css' );
    wp_enqueue_style( $parent_styles[1], get_template_directory_uri() . 
'/css/bootstrap.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . 
'/style.css', $parent_styles, wp_get_theme()->get('Version'));
    wp_enqueue_style( 'child-bootstrap', get_stylesheet_directory_uri() . 
'/css/bootstrap.css', $parent_styles, wp_get_theme()->get('Version'));
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
?>
2
RuuddR

Thèmes parent vs enfant

get_template_directory_uri fait toujours référence au thème parent que vous pouvez vérifier comme vous le feriez toujours lorsque les choses ne se chargent pas comme prévu en consultant la console dans les outils de développement des navigateurs. Celles-ci afficheraient des erreurs 404 pour les fichiers CSS, dans le mauvais dossier.

Utilisez plutôt get_stylesheet_directory_uri, la famille de fonctions stylesheet fait toujours référence au thème actif en cours.

Noms dupliqués

wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( $parent_style ), wp_get_theme()->get('Version'));
wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/css/bootstrap.css', array( $parent_style ), wp_get_theme()->get('Version'));

Vous ne pouvez pas appeler 2 feuilles de style de la même façon et vous attendre à ce que cela fonctionne, comme vous l'avez fait avec vos 4 feuilles de style.

Notez également que vous avez chargé bootstrap.css à partir des deux thèmes.

4
Tom J Nowell

Chaque demande de mise en file d'attente nécessite un descripteur unique (ou nom), qui est le premier argument du crochet wp_enqueue_style . Étant donné que vos deux premières et deux dernières commandes ont le même descripteur, il ne charge probablement que deux des quatre.

Essaye ça. J'ai suivi votre modèle de déclaration d'une variable pour le handle de style parent. J'ai remplacé $ parent_style par un tableau contenant deux descripteurs uniques. Notez que cela signifie que l'instruction de dépendance n'a plus besoin d'un tableau, puisque la variable que nous utilisons est déjà une variable, comme indiqué dans mon code.

<?php
function my_theme_enqueue_styles() {
    $parent_styles = array( 'maxstore_theme_style', 'maxstore_theme_bootstrap' );
    wp_enqueue_style( $parent_styles[0], get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( $parent_styles[1], get_template_directory_uri() . '/css/bootstrap.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', $parent_styles, wp_get_theme()->get('Version'));
    wp_enqueue_style( 'child-bootstrap', get_stylesheet_directory_uri() . '/css/bootstrap.css', $parent_styles, wp_get_theme()->get('Version'));
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
?>
2
Landing on Jupiter