Thème enfant : comment modifier feuille de style dans sous-dossier (Créer un compte)

  • Statut : non résolu
14 sujets de 1 à 14 (sur un total de 14)
  • Auteur
    Messages
  • #543626
    Miracle
    Participant
    Padawan WordPress
    77 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 4.0
    – Version de PHP/MySQL : 5.4
    – Thème utilisé : Newp Pro
    – Extensions en place : Breadcrumb NavXT, Contact Form 7, Google Analytics, NextGEN Gallery
    – Nom de l’hebergeur : Celeonet
    – Adresse du site :

    Problème(s) rencontré(s) :

    Bonjour,

    J’ai créé un thème enfant pour Newp Pro, avec l’en-tête habituel. C’est OK.

    Problème : Comment modifier les styles décrits dans le fichier « main.css », qui se trouve dans le sous-dossier « css » du thème parent ?

    J’ai créé l’arborescence à l’identique dans le thème enfant, mais que dois-je y mettre pour que ça fonctionne ? Une copie du fichier « main.css » ?
    Un fichier « main.css » contenant juste les entrées que je veux modifier, avec un en-tête spécifique pour créer les bons liens avec le thème parent, mais alors quel est l’en-tête adapté ?
    Ou bien y a-t-il une manip à faire ailleurs, dans les fonctions par exemple ? (de ce côté là, je n’ai rien essayé, mes connaissances en php étant limitées).

    Aucun de mes essais ne fonctionne. Toute suggestion est la bienvenue !
    Merci d’avance.

    #980240
    Miracle
    Participant
    Padawan WordPress
    77 contributions

    Je continue mes essais…

    En ajoutant un fichiers « functions.php » contenant ceci :

    <?php
    wp_enqueue_style( ‘newp-main-style’, get_stylesheet_directory_uri(). »/css/main.css », array(‘newp-layout’) );
    ?>

    la feuille de style « main.css » se charge et les modif apparaissent MAIS je perds une partie de la mise en forme (centrage par exemple).

    Je suis consciente que tout cela est bien spécifique, toutefois si quelqu’un a des suggestions notamment sur la syntaxe ou peut-être un principe lié à l’usage des thèmes enfants, je les accueillerai avec enthousiasme…

    #980241
    Flobogo
    Modérateur
    Maître WordPress
    20119 contributions

    Bonjour,

    Je pense que vous êtes sur la bonne voie, car cela ressemble beaucoup à la solution qui m’avait été donnée ici : http://www.wordpress-fr.net/support/viewtopic.php?id=100907

    #980242
    Li-An
    Participant
    Maître WordPress
    28452 contributions

    Pourquoi ne faites vous pas les modifs directement dans le styles.css du thème enfant ?

    #980243
    Flobogo
    Modérateur
    Maître WordPress
    20119 contributions

    Pourquoi ne faites vous pas les modifs directement dans le styles.css du thème enfant ?

    Parce que ça ne fonctionne pas sans passer par l’ajout d’un wp_enqueue_style dans le fichier functions.php quand le CSS qu’on veut modifier se trouve dans un sous-dossier du thème-parent, et non dans la feuille de style principale.

    #980244
    Li-An
    Participant
    Maître WordPress
    28452 contributions

    Désolé, je ne comprends pas: le code entré dans le styles.css du thème enfant ne serait pas pris en compte si il fait référence à un style défini dans un sous-répertoire du thème parent ? Comment ça serait possible ? Un style c’est un style, non ?

    #980245
    ouistiti.net
    Participant
    Maître WordPress
    1879 contributions

    Ce qu’il a voulu dire, c’est que le CSS dans le thème enfant prend le dessus sur les feuilles de styles css du thème parent (même en sous-dossier).

    La solution ci-dessus est utilisée dans le thème enfant si chaque catégorie à sa propre feuille de style… (ceci est un exemple, il y a surement d’autres cas de figures)

    #980246
    Flobogo
    Modérateur
    Maître WordPress
    20119 contributions

    Un style c’est un style, non ?

    Évidemment oui, je ne vais pas dire le contraire 😋

    le code entré dans le styles.css du thème enfant ne serait pas pris en compte si il fait référence à un style défini dans un sous-répertoire du thème parent ?

    C’est exactement ça.

    Le style.css du thème-enfant appelle l’import du style.css du thème-parent, avec la fameuse règle : @import url(« ../nomdutheme/style.css »); , on est bien d’accord

    Mais on ne peut pas importer (appeler l’import) d’un autre fichier xxxx.css situé dans un sous-dossier.
    Ça ne marche pas ! (ça marche pô , comme dirait quelqu’un )

    Je vous invite à lire le sujet que j’avais créé : http://www.wordpress-fr.net/support/viewtopic.php?id=100907

    Extrait :

    Flobogo wrote:
    Problème : le css appliqué au slider est appelé dans le thème-parent à l’aide d’un fichier situé dans un sous-dossier du thème –> air-balloon-lite/css/flexslider.css

    J’ai essayé de copier et modifier une règle dans le style.css du thème-enfant directement, ça ne fonctionne pas.
    J’ai essayé d’ajouter la ligne suivante dans le style.css du thème-enfant :
    @import url(« ../air-balloon-lite/css/flexslider.css »);
    et ça ne fonctionne pas non plus

    La solution que m’a apportée Didier07 passait par un wp_enqueue_style dans le fichier functions.php
    Je ne comprends pas pourquoi ni à quoi ça sert (et j’aime pas trop appliquer un truc que je ne comprends pas) mais ça a marché : la règle ajoutée dans le style.css du thème-enfant a ensuite été prise en compte.

    Peut-être qu’il y a des fois où ça fonctionne directement dans le style.css du thème-enfant sans passer par cette fonction, je ne sais pas …
    Mais je ne suis pas un cas isolé, j’ai vu récemment au moins une autre demande de ce type sur le forum.

    #980251
    Miracle
    Participant
    Padawan WordPress
    77 contributions

    Bonjour,

    Merci pour vos commentaires. De mon côté je galère toujours sur ce problème. J’ai testé mille trucs (dans le même genre que ceux décrits par Flobogo sur le post cité), en vain.

    Je ne comprends pas d’où vient le problème. Est-ce que ça vient du fichier functions.php que j’ai ajouté dans le dossier du thème enfant (et qui permet du moins que s’affichent les modifs apportées sur la feuille de style secondaire (main.css), située dans un sous-dossier du thème enfant pour reproduire l’organisation des dossiers du thème parent.

    Les modifs apportées par moi sur main.css concernent essentiellement des couleurs, des bricoles…

    Or mon problème, c’est que je perds le centrage du contenu principal. POURQUOI ? (dit-elle en levant les mains au ciel…)

    Si quelqu’un peut m’aider à comprendre si le problème vient d’une des feuilles de syle impliquées ou plutôt de mon fchier functions.php, ça serait déjà une piste.

    A propos de functions.php, autre chose m’intrigue. Quand j’ai créé le thème enfant, au départ ça ne fonctionnait pas. J’ai donc contacté le créateur du thème Newp-Pro, qui a corrigé quelque chose dans fucntions.php pour que le système des thèmes parent/enfant fonctionne. OK.

    Or je m’aperçois que les modifications qu’il a apportées au fichier functions.php portaient justement sur la ligne de code que j’ai récupérée pour l’inclure dans le fichier functions.php du thème enfant.

    J’ai donc essayé de modifier aussi cette ligne de code dans le functions.php du thème enfant. Mais alors, non seulement je perds toujours le centrage du contenu principal, mais en plus, mes modifications (de couleurs) apportées à main.css ne sont plus prises en compte. 😡

    Cette ligne de code est, dans la version initiale (qui permet que les modifs de main.css soient prises en compte, mais perte du centrage) :

    wp_enqueue_style( ‘newp-main-style’, get_stylesheet_directory_uri().’/css/main.css’, array(‘newp-layout’) );

    Version corrigée de la ligne de code, qui provoque la perte du centrage sans même que les modif de couleur soient prises en compte :

    wp_enqueue_style( ‘newp-main-style’, get_template_directory_uri(). »/css/main.css », array(‘newp-layout’) );

    Y a-t-il un php-iste éclairé et bienveillant dans le coin pour éclairer mes ténèbres ?…

    Adresse du site (comme il est en chantier, j’en avais protégé l’accès mais tant pis, nécessité fait loi, I need help…) :
    http://www.foulon-attelage-equitation.com/

    #980252
    Miracle
    Participant
    Padawan WordPress
    77 contributions

    P.S. : J’ai désactivé toutes les extensions sauf Contact Form et Akismet, au cas où, en cas que, etc.

    #980249
    Miracle
    Participant
    Padawan WordPress
    77 contributions

    La solution, suggérée par Rohit, le créateur du thème à qui j’ai soumis mon problème : utiliser la propriété « !important ».

    En pratique, dans mon cas :
    – fichier « functions.php » inutile.
    – fichier « main.css » dans sous-dossier reproduisant archi du thème parent : inutile.
    – copie des classes utiles de « main.css » vers « style.css », modification des valeurs et ajout de « !important » avant le « ; »

    Tout simple en fait !
    Contente 🙂
    ✅ :lol:😋

    #980250
    Miracle
    Participant
    Padawan WordPress
    77 contributions

    Info sur la propriété « !important » là : http://www.zonecss.fr/style_css/feuille_css_important.html

    A utiliser avec circonspection donc, mais en l’occurrence ça arrange bien mes affaires pour l’instant. Ceci dit, je pense qu’il faudra que je teste abondamment le site sur divers navigateurs.

    #980247
    Flobogo
    Modérateur
    Maître WordPress
    20119 contributions

    Ah, il faudra que j’essaye …
    Merci pour ces infos 🙂

    #980248
    Miracle
    Participant
    Padawan WordPress
    77 contributions

    Merci à vous pour votre soutien 🙂

14 sujets de 1 à 14 (sur un total de 14)
  • Vous devez être connecté pour répondre à ce sujet.