IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WordPress PHP Discussion :

Thème enfant et fichiers modifiés php et js


Sujet :

WordPress PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Janvier 2015
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Janvier 2015
    Messages : 212
    Par défaut Thème enfant et fichiers modifiés php et js
    Bonjour,

    Je suis en train d'essayer de construire un thème enfant mais j'ai pas mal de fichiers à y intégrer.
    C'est la première fois que je modifie autant un thème.
    Les modifications portent sur 8 fichiers PHP et un JS.
    (thème "minimal grid" v 1.2.9, sous WP 5.6.1)

    fichiers :
    inline-style.php
    template-tags.php
    template-tags.php
    load-posts.php
    single.php
    searchform.php
    content.php
    comments.php
    script.js

    J'ai activé le thème enfant correctement.

    J'ai copié les fichiers modifiés dans le thème enfant, j'ai reproduis la structure des répertoires du parent.

    Le problème est que, à l'exception du CSS, c'est toujours les fichiers du parent qui s'appliquent.

    J'ai tenté des dequeue et enqueue mais sans résultat.

    Est-ce qu'il ne suffisait pas de donner le même nom aux fichiers dans le thème enfant pour qu'ils s'appliquent en remplacement de ceux du thème parent ?

    Je n'ai pas de code à montrer, mon "function.php" minimal fonctionne très bien dans d'autres installations où je n'avais que le CSS à modifier.


    Merci

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 667
    Par défaut
    l'utilisation directe des fichiers PHP fonctionnent seulement avec les fichiers templates, il y a plus d'informations sur ces fichiers là :
    https://developer.wordpress.org/them...ate-hierarchy/
    donc par exemple dans votre liste, le fichier single.php devrait être utilisé en remplacement de celui du parent.

    pour les autres fichiers cela dépend de la façon dont les fichiers du thème sont utilisés.
    par exemple dans le fichier "minimal-grid/inc/template-tags.php", les fonctions sont entourées par des "!function_exists". cela veut dire que si vous définissez une fonction avec le même nom dans le thème enfant, alors la fonction du thème parent ne sera pas chargée.

  3. #3
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Janvier 2015
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Janvier 2015
    Messages : 212
    Par défaut
    Merci Mathieu,

    Je comprends mieux.

    On ne peut pas charger toutes les fonctions contenues dans "template-tags.php" avec une simple commande dans function.php du thème enfant ?

    J'ai essayé "require" comme le thème parent le fait dans son fichier "init.php", sans résultat. J'avais plein d'erreurs.


    Pour le script.js j'ai trouvé, j'ai appliqué le code du thème parent en changeant le path :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    add_action( 'wp_enqueue_scripts', 'add_theme_script');
     
    function add_theme_script() {
     
    $args = minimal_grid_get_localized_variables();
     
    wp_enqueue_script('script', get_stylesheet_directory_uri() . '/js/script.js', array( 'jquery', 'wp-mediaelement' ), '', true);
    wp_localize_script( 'script', 'minimalGridVal', $args );
     
    }

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 667
    Par défaut
    Citation Envoyé par AMP29 Voir le message
    J'ai essayé "require" comme le thème parent le fait dans son fichier "init.php", sans résultat. J'avais plein d'erreurs.
    ça aurait du fonctionner, quelles sont les erreurs ?

  5. #5
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Janvier 2015
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Janvier 2015
    Messages : 212
    Par défaut
    Bonjour,

    Si je mets ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    require_once (get_stylesheet_directory_uri() .'/inc/template-tags.php');
    j'ai ça :
    Nom : ERRORS 1.png
Affichages : 352
Taille : 94,5 Ko

    Si je mets ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    require_once ('/inc/template-tags.php');
    J'ai ça :
    Nom : ERRORS 2.png
Affichages : 337
Taille : 59,8 Ko

    Pas d'erreur de chemin ou de nom.
    Le thème parent procède avec des "require", tous regroupés dans un fichier init.php lancé dans "function.php ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    /**
     * Load all required files.
     */
    require get_template_directory() . '/inc/init.php';

    Merci

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 667
    Par défaut
    si vous commencez le chemin par "/" php va chercher dans le répertoire racine du disque
    essayez cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once "./inc/template-tags.php";

  7. #7
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Janvier 2015
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Janvier 2015
    Messages : 212
    Par défaut
    Je n'ai pas assez creuser l'erreur.

    Au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    require_once (get_stylesheet_directory_uri() . '/inc/init.php');
    si je mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    require_once (get_stylesheet_directory() . '/inc/init.php');
    cela fonctionne.

    Et je ne mets donc dans le init.php du child que les fichiers que j'ai modifiés et bien sûr copiés dans un dossier du child.
    A priori le parent exécute son init.php et charge le reste.

    J'ai dû enlever une fonction de "template-tags.php" côté child car dans le parent elle n'était pas englobée dans "if ( ! function_exists(.."

    Mathieu, vous confirmez que cela se passe comme je le pense ?
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. modifier le nom d' un fichier avec php
    Par wexndene dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2017, 12h25
  2. Fichier index.php modifié
    Par yakotey dans le forum Langage
    Réponses: 2
    Dernier message: 30/07/2012, 21h24
  3. Modifier un nom de fichier depuis php
    Par nimbus_77 dans le forum Langage
    Réponses: 7
    Dernier message: 18/11/2008, 19h53
  4. Modifier le template de création d'un fichier .class.php
    Par Sebastien13 dans le forum Eclipse PHP
    Réponses: 0
    Dernier message: 25/07/2007, 12h08
  5. modifier un fichier en php
    Par smh_master dans le forum Langage
    Réponses: 1
    Dernier message: 01/12/2006, 16h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo