- WordPress :5.5
- Statut : résolu
- Ce sujet contient 6 réponses, 4 participants et a été mis à jour pour la dernière fois par
Gilou26, le il y a 4 années et 7 mois.
-
AuteurMessages
-
11 novembre 2020 à 17 h 18 min #2359163
Ma configuration WP actuelle
- Version de PHP/MySQL : 7.2.10/5.7.23
- Thème utilisé : Storefront-child
- Extensions en place : Advanced Editor, Facebook for woocommerce, Metaslider, One click demo import, UpdraftPlus, Woocommerce, WP maintenance
- Nom de l’hébergeur : En local
- Adresse du site :
Bonsoir à tous.
J’avais modifié mon fichier storefront-template-functions.php situé dans le dossier « inc » de mon thème. Il a été écrasé par une mise à jour de mon thème.
Je l’ai re-modifié, j’ai crée un dossier « inc » dans mon thème enfant pour y placer mon fichier modifié. Cela ne fonctionne pas, c’est toujours le fichier du thème parent qui est prioritaire.
Peut-on mettre n’importe quel fichier modifié dans le thème enfant ? Si oui comment doit-on s’y prendre ?
D’avance merci pour votre aide.
11 novembre 2020 à 19 h 21 min #2359181Bonjour, les appels aux fichiers de fonctions dans les sous-répertoires de thème enfant est un gros problème (et je n’ai pas trouvé de méthode efficace à part faire des appels vers les fichiers modifiés ce qui oblige à de nombreuses modifications dans le thème enfant et beaucoup d’arrachage de cheveux). Suivant vos besoins, je vous conseille de poser la question au développeur du thème. Il aura peut-être un hook à vous proposer pour modifier la fonction ciblée – la méthode la plus efficace dans ce genre de chose.
11 novembre 2020 à 20 h 49 min #2359194dans le fichier storefront-template-functions.php les fonctions commencent toutes par « if ( ! function_exists(« . cela veut dire que vous pouvez les redéfinir dans le thème enfant sans avoir besoin de toucher aux fichiers du thème parent.
pour cela, vous devez définir la fonction dans le fichier functions.php du thème enfant.
11 novembre 2020 à 23 h 04 min #2359204Oui, et pour répondre à la question:
« Peut-on mettre n’importe quel fichier modifié dans le thème enfant ? Si oui comment doit-on s’y prendre ? »
ça dépend des thèmes et des fichiers mais là ce n’est pas possible. Le fichier storefront-template-functions (de même que storefront-functions) ne sont pas pris en compte par le thème enfant (j’ai regardé avec le thème enfant « boutique »). On ne peut rien toucher dans storefront-template-functions sans provoquer au minimum un avertissement.
Autrement quand le thème s’y prête, il faut faire comme vous avez essayé: reproduire dans le thème enfant le chemin existant dans le thème parent.
-
Cette réponse a été modifiée le il y a 4 années et 7 mois par
ferman.
12 novembre 2020 à 16 h 43 min #2359319Bonsoir à tous et merci pour vos réponses.
Je suis un peu perdu dans les fonctions. En fait, je souhaite rajouter une adresse postale, un n° de tel, une adresse mail dans cette partie du code :
<div class="site-info">
<?php echo esc_html( apply_filters( 'storefront_copyright_text', $content = '© ' . get_bloginfo( 'name' ) . ' ' . gmdate( 'Y' ) ) ); ?>
<?php if ( ! empty( $links_output ) ) { ?>
<br />
<?php echo wp_kses_post( $links_output ); ?>
<?php } ?>
</div><!-- .site-info -->site-infoSi on ne peut rien faire, cela veut-il dire que la mention « Construit avec Storefront & WooCommerce » ré-apparaitra à chaque mise a jour du thème ?
Je peux mettre ces infos dans mon footer.php du thème enfant, mais je voudrais pouvoir supprimer ces mentions qui sont affichées par le fichier storefront-template-functions.
-
Cette réponse a été modifiée le il y a 4 années et 7 mois par
Gilou26.
12 novembre 2020 à 17 h 19 min #2359331Si on ne peut rien faire, cela veut-il dire que la mention “Construit avec Storefront & WooCommerce” ré-apparaitra à chaque mise a jour du thème ?
Oui, sauf si vous mettez la fonction (entière) dans functions-php du thème enfant et là on peut modifier à volonté. Par exemple:
function storefront_credit() {
$links_output = '';
if ( apply_filters( 'storefront_credit_link', true ) ) {
if ( storefront_is_woocommerce_activated() ) {
$links_output .= '<a href="https://woocommerce.com" target="_blank" title="' . esc_attr__( 'WooCommerce - The Best eCommerce Platform for WordPress', 'storefront' ) . '" rel="noreferrer">' . esc_html__( 'Built with Storefront & WooCommerce', 'storefront' ) . '</a>.';
} else {
$links_output .= '<a href="https://woocommerce.com/storefront/" target="_blank" title="' . esc_attr__( 'Storefront - The perfect platform for your next WooCommerce project.', 'storefront' ) . '" rel="noreferrer">' . esc_html__( 'Built with Storefront', 'storefront' ) . '</a>.';
}
}
if ( apply_filters( 'storefront_privacy_policy_link', true ) && function_exists( 'the_privacy_policy_link' ) ) {
$separator = '<span role="separator" aria-hidden="true"></span>';
$links_output = get_the_privacy_policy_link( '', ( ! empty( $links_output ) ? $separator : '' ) ) . $links_output;
}
$links_output = apply_filters( 'storefront_credit_links_output', $links_output );
?>
<div class="site-info">
<?php echo esc_html( apply_filters( 'storefront_copyright_text', $content = '© ' . get_bloginfo( 'name' ) . ' ' . gmdate( 'Y' ) ) ); ?>
<?php echo '<a href="mailto:">Contactez-nous</a>';?><br />
<?php echo 'Telephone: 063333333';?><br />
<?php if ( ! empty( $links_output ) ) { ?>
<br />
<?php echo wp_kses_post( $links_output ); ?>
<?php } ?>
</div><!-- .site-info -->
<?php
}12 novembre 2020 à 17 h 34 min #2359342Salut ferman.
Super, ça fonctionne nickel.
Merci pour cette aide précieuse.
Bonne soirée.
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.