web-dev-qa-db-fra.com

Les fichiers de modèle doivent-ils être copiés dans le thème enfant pour être modifiés?

Je sais que le fichier style.css doit être copié dans le thème de l'enfant avant de pouvoir être modifié. Est-ce également vrai pour les fichiers template.php? Si tel est le cas, dois-je simplement copier le fichier de modèle spécifique uniquement ou dois-je tout copier?

METTRE À JOUR:

includes/breadcrumbs.php:

<?php
if ( is_front_page() ) return;

if ( class_exists( 'woocommerce' ) && is_woocommerce() ) {
    woocommerce_breadcrumb();
    return;
}
?>

<div id="breadcrumbs"<?php if ( function_exists( 'bcn_display') ) echo ' class="bcn_breadcrumbs"'; ?>>
    <?php if(function_exists('bcn_display')) { bcn_display(); }
          else {
            $et_breadcrumbs_content_open = true;
    ?>
            <span class="et_breadcrumbs_content">
                <a href="<?php echo esc_url( home_url() ); ?>" class="breadcrumbs_home"><?php esc_html_e('Home','Nexus'
...
1
Sabuncu

Généralement, vous n'avez pas besoin de copier la feuille de style parent complète dans votre thème enfant, vous pouvez simplement copier le code en question dans la feuille de style de votre thème enfant et le modifier.

En ce qui concerne les fichiers functions.php et les autres fonctions associées, vous ne pouvez pas les copier dans votre thème enfant, car cela entraînerait une erreur irrécupérable redéclare. Il y a quelques écrits à ce sujet, alors assurez-vous d'utiliser la recherche sur le site pour cela.

Les fichiers modèles doivent toujours être modifiés dans un thème enfant ( si vous n'êtes pas l'auteur du thème parent ) car les modèles sont un territoire de thème. Il vous suffit de copier les modèles concernés. Il convient de noter que pour les modèles de page, vous devez conserver la même structure de fichier que le thème parent.

La vraie question est de savoir si vous devez ou non copier un modèle et le modifier. Avec le grand nombre de filtres natifs et d’actions disponibles pour filtrer les balises de modèle, les parties de modèle, la boucle elle-même, le tableau de messages, les menus de navigation, les en-têtes et pieds de page, etc., il est devenu de plus en plus facile de modifier quelque chose via un plugin personnalisé sans avoir modifier directement les fichiers modèles eux-mêmes. Changer ces spécificités via leurs filtres respectifs et les actions via un plugin présente l'avantage supplémentaire de rendre ces modifications disponibles pour tout thème utilisé à un moment donné. Il serait utile de s'asseoir et de décider de ce que vous devez changer et de savoir si ce changement est nécessaire lorsque vous changez de thème avant de sauter et de copier un fichier de modèle dans un thème enfant pour le modifier.

Certains des grands thèmes commerciaux ont ajouté des filtres spécifiques que vous pouvez utiliser pour filtrer certaines choses dans un modèle. Dans la plupart des cas, vous pouvez modifier un modèle uniquement à l'aide de ces filtres. Dans ce cas, vous utiliseriez ces filtres dans le fichier de fonctions de votre thème enfant pour modifier la sortie du modèle parent en conséquence.

Si vos modifications ne peuvent pas être effectuées à l'aide de filtres et d'actions, alors, dans ce cas, la méthode appropriée consiste à copier ce modèle particulier dans votre thème enfant et à le modifier. Le seul inconvénient sera alors que vous auriez besoin de maintenir manuellement ces modèles à jour

3
Pieter Goosen

Vous ne devez copier que les fichiers que vous souhaitez modifier. Sinon, lorsque le thème parent sera mis à jour, il chargera les fichiers obsolètes du thème enfant que vous n'avez pas modifiés.

Pensez-y de cette façon, tous les modèles du thème enfant remplacent le thème parent. style.css, functions.php etc ne sont pas des modèles et ne fonctionnent pas de cette façon

3
Tom J Nowell

Vous devez copier le fichier que vous souhaitez ajouter, par exemple, si un fichier réside dans themes\abc\xyz\thefile.php. Vous devez donc créer le même chemin que dans le thème parent. Par exemple, child-themes\abc\xyz\thefile.php

j'espère que cela répond à la question.

1
Ameen Khan