web-dev-qa-db-fra.com

Remplacement de méthodes dans un thème enfant

Guidé par le document Codex sur les thèmes relatifs aux enfants j'ai créé un thème twentythirteen-child pour mon site Web en copiant le fichier index.php non modifié à partir du thème parent et en créant ce fichier style.css simple:

/*
 Theme Name:   Twenty Thirteen Child
 Theme URI:    http://example.com/twenty-fourteen-child/
 Description:  Twenty Thirteen Child Theme
 Author:       Alexander Farber
 Author URI:   http://afarber.de
 Template:     twentythirteen
 Version:      1
 Tags:         light, responsive-layout, accessibility-ready
 Text Domain:  twenty-thirteen-child
*/

@import url("../twentythirteen/style.css");

.site-header .home-link {
        min-height: 800px;
}

Cependant, depuis mon site Web utilise une image d'en-tête personnalisée, j'ai également modifié 2 fichiers dans Wordpress -

1) J'ai modifié la hauteur de l'image du logo dans wp-content/themes/twentythirteen/inc/custom-header.php :

#'height'                 => 230,
 'height'                 => 800,

2) J'ai ajouté #main ancre au home-link dans wp-content/themes/twentythirteen/header.php

<a class="home-link" href="<?php echo esc_url( home_url( '/#main' ) ); ?>"

Je me rends compte que les fichiers WordPress principaux ne doivent pas être modifiés, car les modifications seront écrasées et perdues après la prochaine mise à jour de la version de WordPress.

Mais je ne comprends pas très bien, comment mettre les 2 changements ci-dessus dans le functions.php suggéré par le doc?

Quelqu'un pourrait-il me donner des indices s'il vous plaît?

2
Alexander Farber

Je voudrais revenir à cette réponse sur une de vos questions précédentes sur ce sujet. Comme indiqué dans cette réponse, vousne devriez jamaisapportez des modifications au thème vingt-treize et, d'ailleurs, à tout thème/plug-in dont vous n'êtes pas l'auteur, cela inclut également les fichiers de base.

Mais je ne comprends pas très bien, comment mettre les 2 changements ci-dessus dans le functions.php suggéré par le doc?

OK, votre thème enfant est configuré. Vous devez maintenant créer un fichier à la racine de votre thème enfant et nommez-le functions.php. Ouvrez ce fichier et ajoutez une balise php d’ouverture (<?php) tout en haut et appuyez sur Entrée pour enregistrer ce fichier.

Pour la première ligne de code, vous pouvez simplement changer les arguments custom-header avec cette fonction

function my_custom_header_setup() {
    $args = array( 'height' => 800 );
    add_theme_support( 'custom-header', $args );
}
add_action( 'after_setup_theme', 'my_custom_header_setup' );

Cela ira dans le functions.php de votre thème enfant à partir de la ligne 2

Pour la deuxième partie, copiez simplement le fichier header.php des vingt-treize ans dans la racine de votre thème enfant, ouvrez-le, apportez vos modifications et enregistrez-le. Votre thème enfant utilisera désormais ce header.php à la place du header.php de vingt ans. Vous pouvez utiliser cette méthode pour tous les autres fichiers de modèle, à l'exception des fichiers liés à functions.php et functions.php, car vous allez provoquer une erreur fatale. Par exemple, si vous devez apporter des modifications à index.php, copiez-le simplement dans votre thème enfant, ouvrez-le, apportez vos modifications et enregistrez le fichier. Votre thème enfant utilisera alors ce index.php, et non celui du parent

2
Pieter Goosen

Le thème enfant peut remplacer n'importe quel fichier du thème parent: il suffit d'inclure un fichier du même nom dans le répertoire du thème enfant et il remplacera le fichier équivalent dans le répertoire du thème parent lors du chargement de votre site. Par exemple, si vous souhaitez modifier le code PHP de l'en-tête du site, vous pouvez inclure un fichier header.php dans le répertoire de votre thème enfant. Ce fichier sera utilisé à la place du fichier header.php du thème parent.

Si une mise à niveau est effectuée, les modifications du thème enfant ne seront pas restaurées.

2
dipali