[Résolu] Modification page d’accueil (Créer un compte)

  • WordPress :5.8
  • Statut : résolu
  • Ce sujet contient 7 réponses, 3 participants et a été mis à jour pour la dernière fois par Flobogo, le il y a 1 mois.
8 sujets de 1 à 8 (sur un total de 8)
  • Auteur
    Messages
  • #2409366
    Xt0f
    Participant
    Padawan WordPress
    82 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : 7.4.26
    • Version de WordPress: 6.0 et non 5.8
    • Thème utilisé : eCommerce Star, thème enfant
    • Extensions en place : Akismet Anti-Spam
      All In One WP Security
      Boxtal Connect
      Broken Link Checker
      Central Color Palette
      Complianz – Terms and Conditions
      Complianz | GDPR/CCPA Cookie Consent
      Disable XML-RPC
      Duplicate Page
      Elementor
      Email Address Encoder
      En-têtes HTTP
      Essential Addons for Elementor
      Mailchimp for WooCommerce
      Premium Addons for Elementor
      Rank Math SEO
      Really Simple SSL
      Redirection
      Simple Custom CSS and JS
      Site Kit by Google
      Suivi avancé des envois pour WooCommerce
      Unlimited Elements for Elementor
      UpdraftPlus – Sauvegarde/Restauration
      WooCommerce
      WooCommerce PDF Invoices & Packing Slips
      WooCommerce Stripe Gateway
      WP Database Backup
      WP Super Cache
      WP-Optimize – Nettoyer, compresser, mettre en cache.
      YITH WooCommerce Quick View
      YITH WooCommerce Wishlist
    • Nom de l’hébergeur : Hostinguer
    • Adresse du site : https://www.renov-lampes.com

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

    Hello,

    Sur la page d’accueil de ce site, le titre principal, le h1, est donné au nom du site.

    Perso, pour des raisons de SEO, je souhaite que ce soit plutôt la description du site qui ait la balise h1.

    Concrètement, sur ce site, je souhaiterais donc que le h1 soit « Réparation, rénovation et vente de lampes Jieldé d’occasion », l’élément p.site-description, et non pas « Rénov-lampes » (l’élément de classe « site-title »)

    Pour effectuer cette modif, je me suis dit que l’utilisation d’un thème enfant était opportune et qu’il fallait modifier les fichiers adéquats.

    J’ai donc modifié le fichier inc/template-tags.php.

    A 2 endroits dans ce fichier, il y a un code similaire à ca

    1. Si on est sur la page d’accueil, afficher l’élément site-title avec une balise h1
    2. Sinon, afficher l’élément site-title avec une balise p
    3. Ensuite, si il y a un élément site-description, l’afficher dans une balise p

    J’ai donc modifié cela ainsi:

    1. Afficher site-title dans une balise p
    2. Si on est sur la page d’accueil, afficher site-description dans un h1
    3. Sinon, afficher site-description dans un p

    Cela donne l’extrait php suivant:

    		  <div class="site-branding-text" style=" <?php if(!$ecommerce_star_option['header_show_title_tag']) echo 'display:none'; ?>" >
    			<p class="site-title">
    				<a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home" >
    			  		<?php bloginfo( 'name' ); ?>
    			  	</a>
    			</p>
    
    			<?php if ( is_front_page() ) : ?>
    				<?php $description = get_bloginfo( 'description', 'display' ); if ( $description || is_customize_preview() ) : ?>
    				<h1 class="site-description"><?php echo esc_html($description); ?></h1>
    				<?php endif; ?>
    			<?php else : ?>
    				<?php $description = get_bloginfo( 'description', 'display' ); if ( $description || is_customize_preview() ) : ?>
    				<p class="site-description"><?php echo esc_html($description); ?></p>
    				<?php endif; ?>
    			<?php endif; ?>
    
    		  </div>

    Je pensais que cela devrait fonctionner, et donc que le titre principal de la page d’accueil changerait, mais malheureusement, j’ai eu beau uploader mon fichier, recharger ma page, la balise h1 de la page d’accueil reste la même.

    Quelqu’un verrait-il où je me suis planté?

    Merci!

    #2409516
    Flobogo
    Modérateur
    Maître WordPress
    18499 contributions

    Bonjour,

    Vous n’avez pas dû utiliser le bon fichier.

    Installez l’extension « site locator« , activez-la, et recherchez dans votre thème l’expression « site-branding-text » (sans guillemets). Vous la trouverez en CSS, bien sûr, mais cherchez aussi dans les fichiers PHP. Vous vérifierez ainsi si l’expression ne serait pas dans un autre fichier.

    Autre piste : vous avez mal appelé le fichier modifié dans votre thème-enfant.

    3ème piste : votre code est différent du code d’origine, pourquoi ne pas reprendre le code en modifiant juste ce qu’il faut ? testez déjà ça dans le thème principal, vous verrez bien si c’est là qu’il faut creuser.

    #2409656
    Xt0f
    Participant
    Padawan WordPress
    82 contributions

    Bonjour,

    J’ai installé « string locator », mais il m’a maintenu sur mon choix initial du fichier à modifier.

    J’ai fait un changement plus simple sur le thème principal, et la modif a été prise en compte, donc cela a confirmé l’idée que le fichier à modifier était bien le fichier inc/template-tags.php.

    Je suis du coup reparti sur mon thème enfant, j’ai refait mes modifs… J’uploade… mais rien! pas de changement!

    J’uploade alors ma page dans le thème principal en ayant pris soin au cas où de faire une sauvegarde du fichier original. Et là, ça fonctionne!

    Donc mon thème enfant ne fonctionne visiblement pas 🙁

    Pourtant dans l’admin, dans Apparence > Thème, c’est bien le thème enfant qui est sélectionné.

    Et mon fichier modifié, je l’ai uploadé dans mon thème enfant en prenant soin de respecter le même chemin que dans le thème original.

    Est-ce que j’aurais raté un truc?

    #2409684
    mathieu42
    Participant
    Maître WordPress
    1312 contributions

    le fichier « inc/template-tags.php » n’est pas un fichier template donc juste copier le fichier dans le thème enfant ne suffit pas et il faut trouver comment est appelé ce code dans le thème.

    dans votre cas, j’ai l’impression que cela est géré par le fichier header.php donc c’est ce fichier que vous pouvez copier dans le thème enfant pour le personnaliser.

     

     

    #2409792
    Xt0f
    Participant
    Padawan WordPress
    82 contributions

    Bonjour,

    J’ai regardé de plus près…

    Le code que j’ai modifié se trouve dans 2 fonctions:

    • ecommerce_star_woocommerce_header()
    • ecommerce_star_default_header()

    Avec l’extension « string locator », j’ai pu déterminer que ces 2 fonctions sont appelées dans les fichiers suivants:

    • wp-content/themes/ecommerce-star/template-parts/header/header-info.php
    • wp-content/themes/ecommerce-star/inc/template-tags.php
    • wp-content/themes/ecommerce-star/header.php

    Selon vos conseils mathieu42, j’ai copié header.php et template-parts/header/header-info.php dans mon thème enfant, en respectant les chemins.

    J’ai purgé aussi le cache , mais pour l’instant, les modifs ne sont pas encore prises en compte.

    Est-ce qu’il est nécessaire de modifier le code de header.php pour lui dire d’aller chercher les 2 fonctions préalablement citées dans le thème enfant et non dans le thème parent, ou est-ce que cela devrait être automatiquement géré?

    Au cas où, je vous mets le code de header.php:

    <?php
    /**
     * The header
     * @package ecommerce-star
     * @since 1.0
     */
    ?>
    <!DOCTYPE html>
    <html <?php language_attributes(); ?> class="no-js">
    <head>
    <meta charset="<?php bloginfo( 'charset' ); ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="profile" href="http://gmpg.org/xfn/11">
    <?php 
    	wp_head();
    	/* 
    	 * get default settings 
    	 */ 
    	global $ecommerce_star_option;	
    	if ( class_exists( 'WP_Customize_Control' ) ) {
    	   $ecommerce_star_option = wp_parse_args(  get_option( 'ecommerce_star_option', array() ) , ecommerce_star_settings());  
    	}
    ?>
    </head>
    <body <?php body_class(); ?>>
    <?php
    	if ( function_exists( 'wp_body_open' ) ) {
    		wp_body_open();
    	} else { 
    		do_action( 'wp_body_open' ); 
    	}
    $ecommerce_star_option['header_style'] = ecommerce_star_header_class();
    ?>
    <!-- The Search Modal Dialog -->
    <div id="myModal" class="modal" aria-hidden="true" tabindex="-1" role="dialog">
      <!-- Modal content -->
      <div class="modal-content"> <span id="search-close" class="close" tabindex="0">×</span> 
      <br/><br/>
        <?php get_search_form(); ?>
        <br/>
      </div>
    </div>
    <!-- end search model-->
    <div id="page" class="site">
    <?php 
    if($ecommerce_star_option['box_layout']){
      echo '<div class="wrap-box">';
    }
    
    ?>
    <a class="skip-link screen-reader-text" href="#primary" >
    	<?php esc_html_e( 'Skip to content', 'ecommerce-star' ); ?>
    </a>
    <header id="masthead" class="<?php echo esc_attr(ecommerce_star_header_class()); ?> site-header" role="banner" >
    	
    	<?php get_template_part( 'template-parts/header/header', 'top-1' );	?>
    
    	<div class="container">
    		<?php
    		if(class_exists( 'WooCommerce' ) && $ecommerce_star_option['header_woocommerce']){
    			ecommerce_star_woocommerce_header();
    		} else {
    			ecommerce_star_default_header(); 
    		}
    		?>
    	</div><!-- .container -->
    	
    		<!--display menu bar full row when header options, woocommerce layout with search--> 
    		<?php 
    		// display full width menu below woocommerce search
    		if(class_exists( 'WooCommerce' ) && $ecommerce_star_option['header_woocommerce'] ){
    			ecommerce_star_woocommerce_menu();
    		}
    		
    		//display slider
    		if((is_front_page() || is_home()) && $ecommerce_star_option['slider_in_home_page'] ){
    			get_template_part( 'template-parts/slider', 'section' );	
    		}
    		
    		// breadcrumb not displayed with transparent header
    		if ($ecommerce_star_option['enable_breadcrumb']) {
    			get_template_part( 'template-parts/header/breadcrumb');
    		}
    	
    ?>
    </header><!-- #masthead -->	
    header.php

    #2409806
    Flobogo
    Modérateur
    Maître WordPress
    18499 contributions

    J’ai une solution, peut-être pas très orthodoxe, mais @mathieu42 rectifiera si besoin :

    • dans le thème-enfant, copiez le fichier header.php, en modifiant ainsi les lignes 58 à 66 :
    	<div class="container">
    		<?php
    		if(class_exists( 'WooCommerce' ) && $ecommerce_star_option['header_woocommerce']){
    			ecommerce_star_woocommerce_header_modif();
    		} else {
    			ecommerce_star_default_header_modif(); 
    		}
    		?>
    	</div><!-- .container -->

     

    • dans le fichier functions.php du thème-enfant, ajoutez seulement les lignes qui correspondent aux lignes 656 à 769 du fichier template-tags.php en remplaçant le nom des fonctions function ecommerce_star_woocommerce_header() et function ecommerce_star_default_header() par le même nom avec _modif pour correspondre aux noms indiqués dans le nouveau header.php ci-dessus
    • dans ces 2 fonctions, placez votre code (votre 1er post) pour modifier comme vous le voulez les balises de site-title et site-description

     

     

    #2409904
    Xt0f
    Participant
    Padawan WordPress
    82 contributions

    Super!

    J’ai suivi vos conseils et cela fonctionne désormais. Merci beaucoup!

    #2410068
    Flobogo
    Modérateur
    Maître WordPress
    18499 contributions

    Nickel 👌. Et merci d’avoir marqué « résolu ».

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