web-dev-qa-db-fra.com

Les fichiers .css du thème enfant ne remplacent pas les fichiers .css parent

Le mois dernier, j'ai créé mon tout premier site web. Avant cela, je n'avais aucune connaissance en codage, alors tout ce que j'ai appris était nouveau pour moi.

Mon problème au cours de la semaine dernière est que mes fichiers .css de thème enfant (et php. Mais ce n'est pas la même chose) ne remplacent pas leurs fichiers .css parent. J'ai essayé de chercher une solution toute la semaine mais je n'ai pas réussi jusqu'à présent.

C'est le code que j'ai mis dans le fichier child functions.php

=============================================== ============= (5) - Ce code permet de lire le thème enfant en dernier, mais un autre css (qui doit s'appuyer sur autre chose?) Provoque des erreurs /

<?php
function my_theme_enqueue_styles() {

    $parent_style = 'adforest-original-modern'; // This is 'adforest-style' for the AdForest theme.

    wp_enqueue_style( $parent_style, get_template_directory_uri().'/css/modern.css' );
    wp_enqueue_style( 'child-style',
        get_stylesheet_directory_uri().'/modern.css',
        array( $parent_style ),
        wp_get_theme()->get('1.0.0'));
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );

function wp_67472455() { 
  wp_dequeue_style( 'adforest-theme-modern' );
  wp_deregister_style( 'adforest-theme-modern' );
} 
add_action( 'wp_print_styles', 'wp_67472455', 100 );
?>

=============================================== ========

(6) - CE CODE SUIVANT FONCTIONNE, PEUT-ON VOIR DES PROBLÈMES POTENTIELS AVEC CE CODE?

<?php
function my_theme_enqueue_styles() {
  /* =================== modern.css ==========================*/
    $parent_style = 'adforest-original-modern'; // This is 'adforest-style' for the AdForest theme.

    wp_enqueue_style( $parent_style, get_template_directory_uri().'/css/modern.css' );
    wp_enqueue_style( 'child-style',
        get_stylesheet_directory_uri().'/modern.css',
        array( $parent_style ),
        wp_get_theme()->get('1.0.0'));

   /* =================== default.css ==========================*/
    wp_enqueue_style( 'defualt-original-color', get_template_directory_uri().'/css/colors/defualt.css' );
    wp_enqueue_style( 'child-defualt-color',
        get_stylesheet_directory_uri().'/defualt.css',
        array( 'defualt-original-color' ),
        wp_get_theme()->get('1.0.0'));
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles', 100 );



function wp_67472455() { 
  /* =================== modern.css ==========================*/
  wp_dequeue_style( 'adforest-theme-modern' );
  wp_deregister_style( 'adforest-theme-modern' );

  /* =================== default.css ==========================*/
  wp_dequeue_style( 'defualt-color' );
  wp_deregister_style( 'defualt-color' );
} 
add_action( 'wp_print_styles', 'wp_67472455', 1 );
?>
1
harrison

(Un grand merci à @D. Dan de m'avoir mis dans la bonne direction!)

Cela a parfaitement fonctionné pour moi. Même après la mise à jour d'un thème parent, mes fichiers .css enfants étaient toujours actifs et remplaçaient les fichiers .css parent équivalents.

Ce code est pour plusieurs fichiers .css

<?php
function my_theme_enqueue_styles() {
  /* =================== modern.css ==========================*/
    $parent_style = 'adforest-original-modern'; // This is 'adforest-style' for the AdForest theme.

    wp_enqueue_style( $parent_style, get_template_directory_uri().'/css/modern.css' );
    wp_enqueue_style( 'child-style',
        get_stylesheet_directory_uri().'/modern.css',
        array( $parent_style ),
        wp_get_theme()->get('1.0.0'));

   /* =================== default.css ==========================*/
    wp_enqueue_style( 'defualt-original-color', get_template_directory_uri().'/css/colors/defualt.css' );
    wp_enqueue_style( 'child-defualt-color',
        get_stylesheet_directory_uri().'/defualt.css',
        array( 'defualt-original-color' ),
        wp_get_theme()->get('1.0.0'));

  /* =================== smart_wizard_theme_arrows.css ==========================*/
        wp_enqueue_style( 'defualt_smart_wizard_theme_arrows',          get_template_directory_uri().'/css/colors/smart_wizard_theme_arrows.css' );
    wp_enqueue_style( 'child-defualt_smart_wizard_theme_arrows',
        get_stylesheet_directory_uri().'/smart_wizard_theme_arrows.css',
        array( 'defualt_smart_wizard_theme_arrows' ),
        wp_get_theme()->get('1.0.0'));    

  /* =================== forest-menu.css ==========================*/
    wp_enqueue_style( 'original-forest-menu', get_template_directory_uri().'/css/forest-menu.css' );
    wp_enqueue_style( 'child-forest-menu',
        get_stylesheet_directory_uri().'/forest-menu.css',
        array( 'original-forest-menu' ),
        wp_get_theme()->get('1.0.0'));  

  /* =================== responsive-media-modern.css ==========================*/
    wp_enqueue_style( 'responsive-original-modern', get_template_directory_uri().'responsive-media-modern.css' );
    wp_enqueue_style( 'child-responsive-modern',
        get_stylesheet_directory_uri().'/responsive-media-modern.css',
        array( 'responsive-original-modern' ),
        wp_get_theme()->get('1.0.0'));

}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles', 100 );



function wp_67472455() {
  /* =================== modern.css ==========================*/
  wp_dequeue_style( 'adforest-theme-modern' );
  wp_deregister_style( 'adforest-theme-modern' );

  /* =================== default.css ==========================*/
  wp_dequeue_style( 'defualt-color' );
  wp_deregister_style( 'defualt-color' );

  /* =================== smart_wizard_theme_arrows.css ==========================*/
  wp_dequeue_style( 'adforest-wizard-arrows' );
  wp_deregister_style( 'adforest-wizard-arrows' );   

  /* =================== forest-menu.css ==========================*/
  wp_dequeue_style( 'forest-menu' );
  wp_deregister_style( 'forest-menu' );  

  /* =================== responsive-media-modern.css ==========================*/
  wp_dequeue_style( 'responsive-media-modern' );
  wp_deregister_style( 'responsive-media-modern' );

} 
add_action( 'wp_print_styles', 'wp_67472455', 1 );
?>
0
harrison

Vous devriez ajouter ces lignes à la fonction my_theme_enqueue_styles:

wp_dequeue_style( 'adforest-theme-modern' );
wp_deregister_style( 'adforest-theme-modern' );

car c'est sous ce nom qu'ils sont ajoutés. Et vous avez déjà mis en file d'attente le css parent, de manière à ce qu'il soit chargé avant votre css.

Modifier: Essayer:

function my_theme_enqueue_styles() {

    $parent_style = 'adforest-theme-modern'; // This is 'adforest-style' for the AdForest theme.

    wp_enqueue_style( $parent_style, get_template_directory_uri().'/css/modern.css' );
    wp_enqueue_style( 'child-style',
        get_stylesheet_directory_uri().'/modern.css',
        array( $parent_style ),
        wp_get_theme()->get('1.0.0'));
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );

function wp_67472455() { 
  wp_dequeue_style( 'adforest-theme-modern' );
  wp_deregister_style( 'adforest-theme-modern' );
} 
add_action( 'wp_print_styles', 'wp_67472455', 100 );
0
D. Dan

Essayez d’exécuter deux fonctions séparées avec une priorité incrémentielle.

function my_enqueue_style_one() {
wp_register_style( 'style1', get_template_directory_uri() . '/style1.css' );
wp_enqueue_style( 'style1' );
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_style_one', 10 );

function my_enqueue_style_two() {
wp_register_style( 'style2', get_stylesheet_directory_uri() . '/style2.css' );
wp_enqueue_style( 'style2' );
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_style_two', 20 );

essayez également d'enregistrer les feuilles de style avant de les mettre en file d'attente pour un contrôle supplémentaire ... comme le test conditionnel pour voir si elles sont déjà en file d'attente.

if ( ! wp_style_is( 'style1', 'enqueued') ) { ... }
0
dj.cowan